-1

如果错误是多余的,请道歉,但我正在寻找具体的解决方案。

我正在尝试使用 swagger rest API 将新版本的架构发布到 Hortonworks 架构注册表。我正在使用 python requests 模块以编程方式发布新版本。

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 注册表的正确方法是什么?

4

1 回答 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

于 2019-02-21T18:12:48.960 回答