swagger: запросы Python: javax.ws.rs.NotAllowedException: HTTP 405 метод не разрешен - PullRequest
0 голосов
/ 16 февраля 2019

Приносим свои извинения, если это излишне с ошибкой, но я ищу конкретное решение.

Я пытаюсь опубликовать новую версию схемы в Hortonworks Schema Registry, используя API остаточного сваггера.Я использую модуль запросов 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.Но никто не работал.Как правильно разместить новую версию схемы в реестре hdf, используя остальные API программно?

1 Ответ

0 голосов
/ 21 февраля 2019

В исходном коде это @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

...