При импорте файла OAS 2.0 spe c, Azure API Management преобразует необходимые параметры запроса в параметры пути / шаблона - PullRequest
0 голосов
/ 20 февраля 2020

Я работаю над шлюзом APIM в качестве интерфейса для Microsoft ADLS Gen 2 Rest API, в частности конечной точки «Обновление».

Пример URL-адреса для прямого вызова этой конечной точки (в обход шлюза) будет следующее:

PATCH MyFilesystem/path/to/file.txt?position=0&action=append

My OpenAPI 2.0 spe c документирует это следующим образом (несвязанные реквизиты были опущены):

/{filesystem}/{*path}:
    parameters:
    - name: filesystem
      in: path
      required: true
    - name: path
      in: path
      required: true
    patch:
      parameters:
      - name: action
        in: query
        required: true
      - name: position
        in: query
        required: true

В APIM я ожидал бы, что это будет представлен как:

PATCH 
Path: {filesystem}/{*path}
Query Parameters:
  action
  position

Однако это не так. Вместо этого он обновляет путь, чтобы включить необходимые параметры запроса в качестве параметров шаблона / пути:

PATCH 
Path: {filesystem}/{*path}?action={action}&position={position}
Query Parameters:
  (none)

Поскольку параметры шаблона подстановочного знака (например, {*path}) должны быть last , APIM не будет смог найти эту конечную точку. Это автоматическое преобразование c сделало URL недоступным.

Если я импортирую свой файл spe c и использую редактор форм, чтобы вручную изменить параметры обратно на параметры запроса, он отлично работает. Хотя это хорошо в качестве доказательства концепции, на практике это невозможно; этот процесс будет полностью автоматизирован и в конечном итоге будет вызван файлом spe c.

Я видел, что следующий запрос не получил никакого продолжения: https://feedback.azure.com/forums/248703-api-management/suggestions/34740334-import-mandatory-query-parameters-as-query-rather

Есть ли какой-нибудь жизнеспособный обходной путь?

...