http扩展允许你在Postgres中调用RESTful端点。

快速演示

概述

让我们来介绍一些基本概念:

  • REST:是REpresentational State Transfer的缩写。它是一种从外部服务请求数据的简单方法。
  • RESTful APIs是接受HTTP “调用"的服务器。这些调用通常是:
    • GET - 只读访问一个资源。
    • POST - 创建一个新的资源。
    • DELETE - 移除一个资源。
    • PUT - 更新一个现有的资源或创建一个新的资源。

你可以使用http扩展来从Postgres进行这些网络请求。

用法

启用扩展功能

可用的函数

虽然主要用法是简单的http('http_request'),但有5个封装函数用于特定功能:

  • http_get()
  • http_post()
  • http_put()
  • http_delete()
  • http_head()

返回值

http扩展中成功调用一个网络URL,会返回一个包含以下字段的记录:

  • status: integer
  • content_type: character varying
  • headers: http_header[]
  • content: character varying. 通常情况下,你希望使用content::jsonb的格式将其转换为jsonb

示例

简单的“GET”示例

  select
  "status", "content"::jsonb
from
  http_get('https://jsonplaceholder.typicode.com/todos/1');
  

简单的“POST”示例

  select
  "status", "content"::jsonb
from
  http_post(
    'https://jsonplaceholder.typicode.com/posts',
    '{ "title": "foo", "body": "bar", "userId": 1 }',
    'application/json'
  );
  

资源