swagger: запросы Python: javax.ws.rs.NotAllowedException: HTTP 405 метод не разрешен

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

Я пытаюсь опубликовать новую версию схемы в 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 ответ

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

Другие вопросы по тегам