Ошибка с прокси-сервером Confluent Schema REST при попытке установить схему Avro

Я пытаюсь обновить схему avro, используя остальной прокси API в Confluent. Я могу выполнить GET следующим образом и получить действительный ответ:

http://mykafkahost.com:8081/subjects/avro-schema-for-value/versions/1

Но когда я пробую это: http://mykafkahost.com:8081/subjects/my-avro-schema-for-value/1

используя POST, PUT или PATCH, я постоянно получаю

{"error_code":404,"message":"HTTP 404 Not Found"}

Также попробовал http://mykafkahost.com:8081/subjects/my-avro-schema-for-value/versions/1, но это дает:

{"error_code":405,"message":"HTTP 405 Method Not Allowed"}

Я спросил операционную группу, и они не верят, что определенные глаголы включены / отключены, но мне кажется, что это возможно. Если мне нужно включить POST, через какой файл конфигурации это делается?


person M. Ferris    schedule 14.02.2020    source источник


Ответы (2)


используя остальные прокси API в Confluent

Это реестр схемы, а не прокси-сервер REST.



Но когда я пробую это: :8081/subjects/my-avro-schema-for-value/1

используя либо POST, PUT, or PATCH, я постоянно получаю

{"error_code":404,"message":"HTTP 404 Not Found"}

  1. Опечатка? Ставишь /my-avro-schema, а не /avro-schema
  2. Этот адрес не отвечает на эти методы. Только УДАЛИТЬ работает на /subjects/<name>-value/versions/<version>

через какой файл конфигурации это делается?

Для реестра схемы существует только один файл конфигурации.

person OneCricketeer    schedule 18.02.2020

Если вы намерены обновить схему, которая уже зарегистрирована в реестре схем, то вот вызов POST,

HTTP POST:
URL http://mykafkahost.com:8081/subjects/my-avro-schema-for-value/ 
Post Body:
    {
          "schema":
             "{
                    \"type\": \"record\",
                    \"name\": \"test\",
                    \"fields\":
                      [
                        {
                          \"type\": \"string\",
                          \"name\": \"field1\"
                        },
                        {
                          \"type\": \"int\",
                          \"name\": \"field2\"
                        }
                      ]
                  }"
        }

Response: 
HTTP/1.1 200 OK
{"id":2}

При успешном выполнении запроса POST появится новая версия схемы для темы, но вы не сможете обновить существующую версию, вы можете только удалить версию.

Надеюсь, что это ответ.

person Satish Bellapu    schedule 18.02.2020