<< ..
  
 
      
    使用pREST构建RESTful API服务
发布时间:pREST is a way to serve a RESTful API from any databases written in Go.
具体使用方法官方doc已经写得很明白,如果是brew install prest的话,有个小坑就是所下载的prest是较低版本的,不支持template语法中的inFormat。如果着急尝鲜还是从github下载最新release较妥。
但是,真正爽的是,将prest容器化的尝试。用docker-compose去维护一个服务。
compose文件示例
这里创建一个docker-compose-metrics-data-monitor.yml作为compose配置文件,主要分两个部分,先启动pg,然后挂prest出去:
version: '0.1'
services:
    postgres:
        # $ PGPASSWORD=whofuckinthemaster psql -h "localhost" -p 5433 -U master metrics_monitor_metadata
        image: postgres:9.6
        ports:
            - 5433:5432
        environment:
            - POSTGRES_USER=master
            - POSTGRES_PASSWORD=master_password
            - POSTGRES_DB=metrics_monitor_metadata
        # Uncomment these lines to persist data on the local filesystem.
            - PGDATA=/var/lib/postgresql/data
        volumes:
            - ./pgdata:/var/lib/postgresql/data
    prest:
        image: prest/prest
        depends_on:
            - postgres
        links:
            - postgres
        environment:
            - PREST_CONF=/prest.toml
        ports:
            - "3000:3000"
        volumes:
            - ./prest.toml:/prest.toml
            - ./_quereies_api:/_quereies_api
prest.toml示例
首先构建一个prest.toml:
debug=true
[pg]
host = "postgres"
user = "master"
pass = "whofuckinthemaster"
port = 5432
database = "metrics_monitor_metadata"
[ssl]
mode = "disable"
[queries]
location = "_quereies_api"
[http]
port = 3000
[jwt]
default = false
启动
$ tree ./
./
├── _quereies_api
│   └── metrics_alert
│       ├── something.read.sql
│       └── something.write.sql
├── config
│   └── postgresql.conf
├── docker-compose-metrics-data-monitor.yml
├── prest.toml
$ docker-compose -f ./docker-compose-metrics-data-monitor.yml up -d
$ docker-compose -f ./docker-compose-metrics-data-monitor.yml down