/$metadata не поддерживается в Azure API Management (AAM) для встроенных API-интерфейсов OData V4

#openapi #azure-api-management

#openapi #azure-api-management

Вопрос:

Я подключил свои API-интерфейсы OData V4 к Azure API Management (gateway) через open API spec 3.0
Я определил набор OData конечных точек, доступных в спецификации, и я могу легко получить к ним доступ (с такими функциями OData или без $top, $skip, $filter, etc них).

Тем не менее, я пытаюсь добиться /$metadata результата, и я получаю « 500 internal server error «.
Я даже пытался добавить « /$metadata » в качестве одной из конечных точек в 'paths' спецификации (тот же результат).

 paths:
  /$metadata:
    get:
      summary: getMetadata
      description: getMetadata
      operationId: getMetadata
      responses:
        '200':
          description: Metadata
 

Я могу добавить «/ *» в качестве пути, который даст мне список объектов, когда я просто нажму 'https://AAM_Url'<br />
Но я не хочу этого делать, так как это приведет к принятию любого подобного нежелательного запроса /fgfdgdg и вызову серверной службы…

Комментарии:

1. Я не добавил часть ответа `содержимое` … например, «‘ content: application / json: schema: $ ref: «‘ Надеюсь, это не вызовет никаких проблем… потому что он начал работать без него…

Ответ №1:

Моя вина. Он работал над добавлением «/ $metadata» в спецификации в качестве одного из путей.
В моей политике исходящих сообщений была ошибка, которая вызвала проблему. Я пытался прочитать ответ на JObject, но /$metadata выдает ответ в XML, следовательно, из-за ошибки преобразования я получал 500 внутренних ошибок сервера в качестве ответа.