python - 如何从 API 中确定 REST API 需要哪些字段?

标签 python rest pycurl http-status-code-422

我正在使用具有模糊 API 文档的网络设备。我能够很好地执行 PATCH 和 GET 请求,但 POST 不工作。我收到 HTTP 状态错误 422 作为响应,我在 JSON 请求中缺少一个字段,但我提供了文档中指定的必填字段。我在他们的示例代码中尝试了 Python Requests 模块和供应商提供的 PyCurl 模块,但遇到了同样的错误。

REST API 是否具有针对特定 POST 返回必填字段及其值类型的调试方法?我说的更多是模板配置为在请求中看到的内容(例如 JSON {str(ServerName) : int(ServerID)},而不是 API 开发人员可能创建的内容。

最佳答案

不,这一般不存在。某些服务支持对相关路线的 OPTIONS 请求,该请求应向您返回有关该路线的文档。如果幸运的话,这是从实现路由的相同源代码生成的机器,因此比静态文档更准确。然而,它可能只是返回一个非常简单的摘要,比如支持哪些 HTTP 动词,这些你已经知道了。

更好的是,某些服务可能支持使用 WSDL 或 WADL 对 API 进行机器描述,尽管您可能只有在服务也支持 XML 时才会发现这一点。这可能会更好,因为您将能够找到一个可以解析描述并生成服务的本地对象模型以用于与 API 交互的库。

但是,即使您有 OPTIONS 或 WADL 文件,您面临的那种错误仍然可能发生。如果文档没有帮助,您可能需要联系服务支持团队并演示您的问题并请求帮助。

关于python - 如何从 API 中确定 REST API 需要哪些字段?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39726577/

相关文章:

python - 打印列表理解列表理解中不存在的搜索词

python - 如何使用 Python 将格式化文件解析为变量?

Python:使用 cURL 获取重定向 url

web-services - 发现 REST Web 服务的参数

python - 安装pycurl时出现"Could not run curl-config: [Errno 2] No such file or directory"

python-3.x - 怎么修?导入错误 : pycurl: libcurl link-time version is older than compile-time version

python - 如何使用 BeautifulSoup (Python) 从 HTML 标签中提取文本?

python - 使用不同版本的 fixture 运行一项测试

python - 如何在 python 中为 cosmos db 生成其余授权 token ?

java - 值在 java spring Controller 中使用 post 方法接收 null