如何从 API 中确定 REST API 需要哪些字段?
How to determine what fields are required by a REST API, from the API?
我正在使用具有模糊 API 文档的网络设备。我能够很好地执行 PATCH 和 GET 请求,但是 POST 不工作。我收到 HTTP 状态错误 422 作为响应,我在 JSON 请求中缺少一个字段,但我提供了文档中指定的必填字段。我在他们的示例代码中尝试了 Python Requests 模块和供应商提供的 PyCurl 模块,但遇到了同样的错误。
REST API 是否有调试方法 returns 特定 POST 的必填字段及其值类型?我说的更多是模板配置为在请求中看到的内容(例如 JSON {str(ServerName) : int(ServerID)}
,而不是 API 开发人员可能创建的内容。
不,这一般不存在。一些服务支持对有问题的路线的 OPTIONS 请求,这应该 return 您对路线的记录。如果幸运的话,这是从实现路由的相同源代码生成的机器,因此比静态文档更准确。但是,它可能只是return一个非常简单的总结,比如支持哪些HTTP动词,这些你已经知道了。
更好的是,某些服务可能支持使用 WSDL 或 WADL 对 API 的机器描述,尽管您可能只有在服务也支持 XML 时才会发现这一点。这可能会更好,因为您将能够找到一个可以解析描述并生成服务的本地对象模型以用于与 API.
交互的库
但是,即使您有 OPTIONS 或 WADL 文件,您面临的那种错误仍然可能发生。如果文档没有帮助,您可能需要联系服务支持团队并演示您的问题并请求帮助。
我正在使用具有模糊 API 文档的网络设备。我能够很好地执行 PATCH 和 GET 请求,但是 POST 不工作。我收到 HTTP 状态错误 422 作为响应,我在 JSON 请求中缺少一个字段,但我提供了文档中指定的必填字段。我在他们的示例代码中尝试了 Python Requests 模块和供应商提供的 PyCurl 模块,但遇到了同样的错误。
REST API 是否有调试方法 returns 特定 POST 的必填字段及其值类型?我说的更多是模板配置为在请求中看到的内容(例如 JSON {str(ServerName) : int(ServerID)}
,而不是 API 开发人员可能创建的内容。
不,这一般不存在。一些服务支持对有问题的路线的 OPTIONS 请求,这应该 return 您对路线的记录。如果幸运的话,这是从实现路由的相同源代码生成的机器,因此比静态文档更准确。但是,它可能只是return一个非常简单的总结,比如支持哪些HTTP动词,这些你已经知道了。
更好的是,某些服务可能支持使用 WSDL 或 WADL 对 API 的机器描述,尽管您可能只有在服务也支持 XML 时才会发现这一点。这可能会更好,因为您将能够找到一个可以解析描述并生成服务的本地对象模型以用于与 API.
交互的库但是,即使您有 OPTIONS 或 WADL 文件,您面临的那种错误仍然可能发生。如果文档没有帮助,您可能需要联系服务支持团队并演示您的问题并请求帮助。