繁体   English   中英

从 API 对 PostgreSQL 表的响应

[英]From API responses to PostgreSQL tables

语境

我正在寻找一种高效且强大的工作流程来将 API 响应中的数据转储到 PostgreSQL 数据库。

详细解释

我可以访问一个项目RESTfulAPI ,我可以向其发送一些请求(图 1),并以JSON数据的形式给出响应

例如,当使用postman时,我可以使用 API 考虑的所有参数构建查询,例如:

cURL 中的请求示例 图 1: cURL中的请求示例。

相应的响应看起来像一堆:

[
    {
        "id": "128",
        "user": "UUID-981729jqdwm91888r",
        "description": {
            "producer": "John Wayne",
            "title": "Alamo",
            "year": 1960
        },
        "preview": {
            "imageURL": "11231068.jpg"
        }
    },
    {
    ...
    }
]

另一方面,我有一个PostgreSQL数据库(在docker 容器内),该数据库已经构造为允许响应数据。 例如,之前结果中的所有单个电影特征都必须记录在'films'表中(图 2)。

PostgreSQL 表示例
图 2:生成的 PostgreSQL 表的示例。


问题是,我不知道从哪里开始,因为我一直通过我的 web 浏览器或 Postman 查询 API。

总而言之,我必须将 API 响应转储到一组结构化的 PostgreSQL 表中,如下所示;
one API route that is requested --> one JSON response (with multiple features) --> one PostgreSQL table (with multiple rows)
一行对应于响应特征之一)。

问题

我怎么能在技术上做到这一点? 是否可以直接在 SQL 中构建 API 请求(我觉得这是一个非常糟糕的主意)还是我必须使用其他语言或工具(出于安全原因或仅出于实用性)?

在搜索 web 时,我几乎总是找到“如何使 API 调用 Postgres 数据库?”的答案,这显然不是我想要的。

尝试做一个服务

  • 致电您的 Rest API 并获取数据
  • 结构化数据库表的数据
  • 然后将数据放入数据库

您可以设置完成此工作的时间间隔/预定时间。

你可以使用 golang 来构建这个服务或者其他你熟悉的语言。

因此,如果我理解正确,您想从 web API 获取数据并将它们转储到某种形式的数据库中,可能用于以后的数据处理。

令我惊讶的是,Postgres 中确实存在这样的事情来做你想做的事,尽管你需要放宽纯粹的 SQL 要求。 如果你愿意使用 PL/PGSQL,有这个插件添加了一个 HTTP 客户端用于 Postgres。

对于一次性脚本并且您不介意在 Postgres 中使用过程语言扩展,我想这会很好。 然而,明智的做法是,Python 脚本会比 PGSQL 更安全、更简单且总体上更容易开发。 就个人而言,我会使用 go 与 Python 路线,但我不是数据库管理员,这会影响我的偏好。

实际上,如果您不关心使用关系数据库的纯度或不那么舒服,您可以使用 ORM 之类的SQLAlchemy来简化此任务,然后再将对象序列化为 ZA7F5F325426B9282171 对象。 如果您不喜欢 ORM 的想法,您还可以使用 SQLAlchemy 来抽象和处理数据库连接和表设置。

当然,如果您对 SQL 感到满意,还有更多的准系统库可以设置与 Postgres 的数据库连接,并包括对游标、预准备语句等的支持。 对于 Python,有psycopg2 对于 JavaScript 有node-postgres

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM