我已经提供了RESTful Web服务来将数据推送到另一个应用程序的远程数据库中.我需要通过将
JSON格式的数据作为GET / POST参数发送到Web服务来调用这些服务来从Postgresql DB推送数据.是否可以从Postgresql函数(定期)调用这些Web服务,这些函数首先将数据推送到我的数据库中,或者编写JAVA代码来调用这些在Postgresql数据库上运行查询的Web服务并调用Web服务将它们传递给远程DB.
解决方法
是的,有可能,但不是直接来自Postgresql本身.我不知道Java,但最快的方法是使用plperlu和REST :: Client包,例如:
CREATE OR REPLACE FUNCTION restful.put(auri character varying,ajson_text text) RETURNS text LANGUAGE plperlu SECURITY DEFINER AS $function$ use REST::Client; use Encode qw(encode); my $client = REST::Client->new(); $client->getUseragent()->proxy( 'https','http://some-proxy/' ); # use for proxy authentication $client->addHeader('Content-Type','application/json'); # headers $client->POST( $_[0],encode('UTF-8',$_[1])); # encoding return $client->responseContent(); $function$