Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2008/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何从API中确定RESTAPI需要哪些字段?_Python_Rest_Pycurl_Http Status Code 422 - Fatal编程技术网

Python 如何从API中确定RESTAPI需要哪些字段?

Python 如何从API中确定RESTAPI需要哪些字段?,python,rest,pycurl,http-status-code-422,Python,Rest,Pycurl,Http Status Code 422,我正在使用一个有模糊API文档的网络设备。我能够执行补丁并获得良好的请求,但POST不起作用。我收到HTTP status error 422作为响应,JSON请求中缺少一个字段,但我提供了文档中指定的必需字段。我在示例代码中尝试了Python请求模块和供应商提供的PyCurl模块,但遇到了相同的错误 RESTAPI是否有一个调试方法,用于返回特定POST所需的字段及其值类型?我说的更多的是模板在请求中的配置(比如JSON{str(ServerName):int(ServerID)},而不是AP

我正在使用一个有模糊API文档的网络设备。我能够执行补丁并获得良好的请求,但POST不起作用。我收到HTTP status error 422作为响应,JSON请求中缺少一个字段,但我提供了文档中指定的必需字段。我在示例代码中尝试了Python请求模块和供应商提供的PyCurl模块,但遇到了相同的错误


RESTAPI是否有一个调试方法,用于返回特定POST所需的字段及其值类型?我说的更多的是模板在请求中的配置(比如JSON
{str(ServerName):int(ServerID)}
,而不是API开发人员可能创建的。

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

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


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

许多服务器支持
选项
方法,如果这不起作用,您必须查看he docs,如果你没有docs,祝你好运!@KlausD。感谢你的想法,我尝试了一下,但给出了与GET相同的信息。但是,没有运气!谢谢你,我尝试了OPTIONS,但它给出了与执行GET相同的结果。我还尝试重新格式化JSON以匹配结果,但仍然没有运气。还有其他吗(还是JSON?)关心字段是否在元组和字典中?REST和JSON不关心,这取决于您的Python JSON库,以及它如何转换元组。我一直无法解决任何问题,因此我将问题提交给供应商,并指定他们的开发团队对其进行审查并提供反馈,因为他们似乎最有可能知道它是如何工作的。谢谢