【问题标题】:Hasura API with Python POST gives 404 ErrorHasura API 与 Python POST 给出 404 错误
【发布时间】:2021-03-20 01:46:58
【问题描述】:

我正在尝试使用 Hasura API 来获取我的数据库的内容。适当的端点是v1alpha1/pg_dump

我尝试在 Python 中执行以下操作:

import requests
api_url = 'http://localhost:9695/v1alpha1/pg_dump'
header = {'Content-Type': 'application/json',
          'x-hasura-admin-secret': 'MY_SECRET',
          'X-Hasura-Role': 'admin'}
r = requests.post(url=api_url, headers=header)

如果我执行requests.get,我会返回信息(html 代码,虽然没有什么特别有用的)。但是,如果我执行 requests.post(Hasura 要求:https://hasura.io/docs/1.0/graphql/core/api-reference/pgdump.html),我会收到 404 错误。我不明白为什么。这不是身份验证错误,而是找不到页面错误。

我是否错误地构建了我的网址?有什么我想念的吗?端口是正确的(如果我在代码中更改它,它会给我一个不同的错误,告诉我端口无效/关闭)。我不确定还有什么要改变的。

【问题讨论】:

  • 你没有发布任何数据,是吗?
  • 我尝试添加 data 和/或 body 字段,但没有任何区别。当我过去处理 REST api 时,当数据丢失时,它会给出不同的错误。由于缺少正文,我从未收到 POST 的“找不到页面”错误。

标签: python post python-requests hasura


【解决方案1】:

所以,我在自己的 Digital Ocean 1 click 部署环境中进行了尝试。我没有保护它,所以我没有提供任何标题。它工作正常,如下所示:

import requests
import json

r = requests.post('http://address_of_hasura/v1alpha1/pg_dump',
  data = json.dumps({
  'opts' : ['-O', '-x', '--schema-only', '--schema', 'public'],
  'clean_output': True
}) )
print r.text

如果您使用了 HASURA_GRAPHQL_ENABLED_APIS 环境变量但未包含 pgdump,则可能是 disabled

【讨论】:

  • 嗯我试过你的代码用我的替换你的url并添加我的标题,但它仍然打印404 page not found
猜你喜欢
  • 2020-11-23
  • 2015-12-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-06-19
  • 1970-01-01
  • 2014-05-06
相关资源
最近更新 更多