PostgRESTインストール
4053 ワード
背景の説明
PostgRESTは、CRUD操作のためにrestapiインタフェースを直接生成するために使用され、バックエンドの開発作業量を低減し、高度に一貫した仕様のデータを提供するインタフェースであり、いくつかのシーンで重要な応用価値を有する.
環境説明OSバージョン:CentOS Linux release 7.1908 PostgreSQLバージョン:PostgreSQL 10、インストールプロセスは別のBlogを参照できます.
注意PostgREST依存PostgreSQL 9.5以上
1.データベースとアクセスアカウントの準備
psqlコマンドラインに入り、devuserを作成し、このユーザーのデータベースdevdbを作成します.
devuserを使用してログインし、テストテーブルを作成し、数行のレコードを挿入し、表示します.
2.メディアのインストールの準備
PostgRESTはHaskellで作成されているので、直接コンパイルする場合はHaskell環境を用意する必要があります.ここではコンパイルしたreleaseバージョンを直接採用し、releaseバージョンのアドレスを参照します.
このファイルを解凍するとpostgrestプログラムファイルが1つしか見えません.このファイルを直接実行し、ヒントを表示します.
この実行ファイルの実行には、プロファイルパラメータが必要です.
3.ソフトウェアインストールディレクトリの計画
厳密に区別するために、PostgREST関連ファイル/usr/local/pgrestディレクトリの下で、このディレクトリにbin、cfg、logフォルダをそれぞれ作成し、実行ファイル、プロファイル、ログファイルをそれぞれ格納します.
実行ファイルを/usr/local/pgrest/binディレクトリに移動
プロファイルの作成/usr/local/pgrest/cfg/default.conf
注意: db-uriのdevuserは私が最初に準備したユーザー名で、コロンの後ろにパスワードがあります. db-anon-roleはdevuserが持つ役割で、ここで私は彼自身を書きます. server-portはサービスポートで、ここでは3000で、必要に応じて自分で を修正することができます.
テストの実行
もう一つのウィンドウをcurlでインタフェースにアクセスしてみてください.
起動スクリプト/usr/local/pgrest/startup.shを追加し、必要に応じてシステムサービスを行うことができます.
PostgRESTは、CRUD操作のためにrestapiインタフェースを直接生成するために使用され、バックエンドの開発作業量を低減し、高度に一貫した仕様のデータを提供するインタフェースであり、いくつかのシーンで重要な応用価値を有する.
環境説明OSバージョン:CentOS Linux release 7.1908 PostgreSQLバージョン:PostgreSQL 10、インストールプロセスは別のBlogを参照できます.
注意PostgREST依存PostgreSQL 9.5以上
1.データベースとアクセスアカウントの準備
psqlコマンドラインに入り、devuserを作成し、このユーザーのデータベースdevdbを作成します.
psql -U postgres
postgres=# CREATE USER devuser WITH PASSWORD '******';
CREATE ROLE
postgres=# CREATE DATABASE devdb OWNER devuser ENCODING = 'UTF8';
devuserを使用してログインし、テストテーブルを作成し、数行のレコードを挿入し、表示します.
psql -U devuser --password devdb
devdb=> create table rest_data(id int,rest_content varchar(12));
devdb=> insert into rest_data values(1,'Hello');
devdb=> insert into rest_data values(2,'world');
devdb=> insert into rest_data values(3,'This');
devdb=> insert into rest_data values(4,'is');
devdb=> insert into rest_data values(5,'a');
devdb=> insert into rest_data values(6,'restapi');
devdb=> select * from rest_data ;
devdb=> \q
2.メディアのインストールの準備
PostgRESTはHaskellで作成されているので、直接コンパイルする場合はHaskell環境を用意する必要があります.ここではコンパイルしたreleaseバージョンを直接採用し、releaseバージョンのアドレスを参照します.
wget https://github.com/PostgREST/postgrest/releases/download/v6.0.2/postgrest-v6.0.2-centos7.tar.xz
tar -xvf postgrest-v6.0.2-centos7.tar.xz
このファイルを解凍するとpostgrestプログラムファイルが1つしか見えません.このファイルを直接実行し、ヒントを表示します.
Missing: FILENAME
Usage: postgrest FILENAME
PostgREST 6.0.2 (713b214) / create a REST API to an existing Postgres database
Available options:
-h,--help Show this help text
FILENAME Path to configuration file
Example Config File:
db-uri = "postgres://user:pass@localhost:5432/dbname"
db-schema = "public" # this schema gets added to the search_path of every request
db-anon-role = "postgres"
db-pool = 10
db-pool-timeout = 10
server-host = "!4"
server-port = 3000
...
この実行ファイルの実行には、プロファイルパラメータが必要です.
3.ソフトウェアインストールディレクトリの計画
厳密に区別するために、PostgREST関連ファイル/usr/local/pgrestディレクトリの下で、このディレクトリにbin、cfg、logフォルダをそれぞれ作成し、実行ファイル、プロファイル、ログファイルをそれぞれ格納します.
mkdir -p /usr/local/pgrest/bin
mkdir -p /usr/local/pgrest/cfg
mkdir -p /usr/local/pgrest/log
実行ファイルを/usr/local/pgrest/binディレクトリに移動
mv postgrest /usr/local/pgrest/bin/
プロファイルの作成/usr/local/pgrest/cfg/default.conf
vi /usr/local/pgrest/cfg/default.conf
#
db-uri = "postgres://devuser:****@192.168.56.120:5432/devdb"
db-schema = "public" # this schema gets added to the search_path of every request
db-anon-role = "devuser"
db-pool = 10
db-pool-timeout = 10
server-host = "!4"
server-port = 3000
注意:
テストの実行
/usr/local/pgrest/bin/postgrest /usr/local/pgrest/cfg/default.conf
Attempting to connect to the database...
Listening on port 3000
Connection successful
もう一つのウィンドウをcurlでインタフェースにアクセスしてみてください.
curl -X GET "http://192.168.56.120:3000/rest_data?limit=10"
:
[{"id":1,"rest_content":"Hello"},
{"id":2,"rest_content":"world"},
{"id":3,"rest_content":"This"},
{"id":4,"rest_content":"is"},
{"id":5,"rest_content":"a"},
{"id":6,"rest_content":"restapi"}]
起動スクリプト/usr/local/pgrest/startup.shを追加し、必要に応じてシステムサービスを行うことができます.
vi /usr/local/pgrest/startup.sh
#!/bin/bash
start_time=$(date +%Y%m%d%H%M%S)
/usr/local/pgrest/bin/postgrest /usr/local/pgrest/cfg/default.conf > /usr/local/pgrest/log/log_postgrest_${start_time}.log