sql >> Base de Datos >  >> RDS >> PostgreSQL

Llamar a servicios web RESTful desde el procedimiento/función de PostgreSQL

Sí, es posible, aunque no directamente desde Postgresql. No sé sobre Java, pero la forma más rápida es usar plperlu con REST::Client paquete, por ejemplo:

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$