swagger:python请求:javax.ws.rs.NotAllowedException:HTTP 405方法不允许

问题描述 投票:-1回答:1

如果错误是多余的,请道歉,但我正在寻找一个特定的解决方案。

我正在尝试使用swagger rest API将新版本的架构发布到Hortonworks Schema Registry。我正在使用python请求模块以编程方式发布新版本。

path = '/' + schemaname + '/versions' + '/' + str(max(versions)+1)
logger.info(self.url(path))
requests.post(self.url(path), schemaText)


ERROR  [2019-02-15 17:18:13.496] [dw-167124 - PUT /api/v1/schemaregistry/schemas/diff%20data/versions/2] c.h.r.c.GenericExceptionMapper -  Got exception: [NotAllowedException] / message [HTTP 405 Method Not Allowed] 

我尝试了前面关于'方法允许异常'的问题所建议的各种事情,比如使用PUT,POST或GET。但都没有效果。以编程方式使用其余api将新版本的架构发布到hdf注册表的正确方法是什么?

python python-requests swagger-ui hortonworks-dataflow
1个回答
0
投票

在源代码中,它是@POST @Path("/schemas/{name}/versions")

您需要删除最后的版本号,因为它会返回一个版本。您没有为架构提供特定版本

而且我不知道是否允许使用空格,因此您可能希望将其从diff data中删除

您用于@GET @Path("/schemas/{name}/versions/{version}")的地址不允许使用其他HTTP方法


参考 - https://github.com/hortonworks/registry/blob/HDF-2.1.0.0/schema-registry/rest-service/src/main/java/com/hortonworks/registries/schemaregistry/webservice/SchemaRegistryResource.java#L219

注意:您可以使用swagger-codegen为服务器创建Python代码,而不是在requests中重写代码

© www.soinside.com 2019 - 2024. All rights reserved.