Поддержка XML в Google Cloud Endpoint

После изучения документации и руководств по быстрому запуску, доступных для облачной конечной точки Google, кажется, что в настоящее время она поддерживает json, тогда как облачное хранилище Google поддерживает как json, так и XML. Я хотел знать, поддерживает ли конечная точка Google XML? на случай, если я пропустил это в справочной документации.


person Juhi Gupta    schedule 15.06.2020    source источник


Ответы (1)


Определение службы Google Cloud Endpoint основано на версии Open API v2, также известной как swagger 2.

Эта спецификация представлена ​​только в формате yaml, и у вас нет возможности использовать XML для этого определения.

В любом случае, сегодня существует множество библиотек / фреймворков, которые реализуют спецификацию Open API для автоматического создания спецификации API из вашего кода или для генерации заглушки кода из существующей спецификации API. Сегодня это один из самых популярных стандартов.

ИЗМЕНИТЬ

Согласно вашему комментарию, если вы хотите добавить тело в XML, решать вам. Это выходит за рамки Cloud Endpoint, где здесь используется чистый протокол HTTP.

Если ваш XML слишком длинный, слишком сложный, потому что у вас есть двойные кавычки и простые кавычки (и вам нужно их правильно избегать, ...), вы можете сделать это

  • Поместите ваш XML в файл с именем типа body.xml
  • Использовать ссылку на файл в curl --data @body.xml
person guillaume blaquiere    schedule 15.06.2020
comment
На самом деле я хотел использовать другой подход, например, при запросе к конечной точке облака в формате json `curl --request POST \ --header content-type: application / json \ --data '{message: hello world} '\ echo-api.endpoints. ‹PROJECT_ID›: 80 / echo? key = $ {ENDPOINTS_KEY} `Я хочу сделать в формате XML что-то вроде этого:` curl --request POST \ --header content-type: application / xml \ --data '‹message› hello world ‹/Message› '\ echo-api.endpoints. ‹PROJECT_ID›: 80 / echo? Key = $ {ENDPOINTS_KEY} ` - person Juhi Gupta; 16.06.2020
comment
Хорошо, вы хотите опубликовать тело в формате XML. так в чем твоя проблема? Я добавил подсказку в редактирование своего ответа - person guillaume blaquiere; 16.06.2020
comment
Да, я пробовал так, как вы упомянули в комментарии, но проблема все та же, я получаю сообщение об ошибке { "code": 500, "message": "Exception: 'NoneType' object has no attribute 'get'" } Хотя при настройке конечной точки я внес следующие изменения в файл openapi.yaml consumes: - "application/xml" produces: - "application/xml" - person Juhi Gupta; 16.06.2020
comment
Работает ли это, когда вы вызываете свой API напрямую без использования конечной точки? - person guillaume blaquiere; 16.06.2020
comment
Я только что протестировал и, как я уже сказал, проблем нет, он не управляется Cloud Endpoint, и данные XML верны при вводе и выводе. Поделитесь частью своей спецификации API, если вам нужна дополнительная помощь. - person guillaume blaquiere; 16.06.2020
comment
Да ты прав. Я попробовал использовать другой внутренний код и получил желаемый результат. Спасибо за вклад! Это было большим подспорьем! - person Juhi Gupta; 17.06.2020