Skip to content

lvbuwei/pgapi

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

pgapi

nginx direct connect postgresql

此模块主要用来做rest json 接口,通过此模块,可以将数据库的存储过程直接映射成url地址, nginx收到的url查询参数,也就是请求参数?后面查询参数转换成json类型,将header也转换成json 参数,一并发到存储过程做为存储过程参数,存储过程返回json输出参数,这样,接口服务器除了 需要安装nginx和postgresql,不用安装其他任何语言和框架,就可以提供rest的json服务。 想增加功能的,请加入QQ群:5276420

比如,如果发起请求/api/test?aaa=333&bbb=444

存储过程的param中将会收到如下的参数

{
  "ip":"127.0.0.1",
  "query":{
    "aaa":"333",
    "bbb":"444"
  },
  "headers":{
    "user_agent":"curl-1.7",
    "host":"localhost:80"
  }
}

如果数据库使用pg11以下,则只能使用function了,因为procedure是11才引入的。 此时,只需要修改代码,将call proc# 改成 select * from func_#即可。

接口实现方式,如下图所示。

CREATE OR REPLACE PROCEDURE proc_api_test(param jsonb,inout Result jsonb='{}')
AS
$$
DECLARE
  r record;
BEGIN
  --PERFORM 1 FROM pg_sleep(5);
  Result = '{"resid":0,"resmsg":"DB_OK"}';
  RETURN;
END;
$$
LANGUAGE plpgsql;

About

nginx direct connect postgresql

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages