http: RESTful Client
The http extension allows you to call RESTful endpoints within Postgres.
Quick demo
Overview
Let's cover some basic concepts:
- REST: stands for REpresentational State Transfer. It's a way to request data from external services.
- RESTful APIs are servers which accept HTTP "calls". The calls are typically:
GET− Read only access to a resource.POST− Creates a new resource.DELETE− Removes a resource.PUT− Updates an existing resource or creates a new resource.
You can use the http extension to make these network requests from Postgres.
Usage
Enable the extension
- Go to the Database page in the Dashboard.
- Click on Extensions in the sidebar.
- Search for
httpand enable the extension.
Available functions
While the main usage is http('http_request'), there are 5 wrapper functions for specific functionality:
http_get()http_post()http_put()http_delete()http_head()
Returned values
A successful call to a web URL from the http extension returns a record with the following fields:
status: integercontent_type: character varyingheaders: http_header[]content: character varying. Typically you would want to cast this tojsonbusing the formatcontent::jsonb
Examples
Simple GET example
1234select "status", "content"::jsonbfrom http_get('https://jsonplaceholder.typicode.com/todos/1');Simple POST example
12345678select "status", "content"::jsonbfrom http_post( 'https://jsonplaceholder.typicode.com/posts', '{ "title": "foo", "body": "bar", "userId": 1 }', 'application/json' );Resources
- Official
httpGitHub Repository