Управление API Azure не учитывает идентификатор операции при импорте открытой спецификации API - PullRequest
0 голосов
/ 29 августа 2018

У меня есть swagger.json, созданный из Swashbuckle. При импорте спецификации открытого API в управление API Azure он не использует идентификатор операции в качестве имени операции. Вместо этого он использует описание. Я приложил образец JSON, который вызывает проблему.

{
  "swagger": "2.0",
  "info": {
    "version": "v1",
    "title": "Route Manager API"
  },
  "paths": {
    "/api/account/Logout": {
      "post": {
        "tags": [ "Account" ],
        "summary": "Logs the current user out of the system.",
        "operationId": "ApiAccountLogoutPost",
        "consumes": [],
        "produces": [],
        "parameters": [],
        "responses": { "200": { "description": "Logout successfully performed" } }
      }
    }
  }
}

enter image description here

Следующий пример взят из документации Microsoft при импорте спецификации Open API и, по-видимому, использует OperationId в качестве имени (GetSessions) отображается в качестве заголовка для функции в управлении API.

  "paths": {
    "/sessions": {
      "get": {
        "description": "A list of sessions.  Optional parameters work as filters to reduce the listed sessions.",
        "operationId": "GetSessions",
        "parameters": [
          {
            "name": "speakername",
            "in": "query",
            "type": "string"
          },
          {
            "name": "dayno",
            "in": "query",
            "description": "Format - int32.",
            "type": "integer"
          },
          {
            "name": "keyword",
            "in": "query",
            "type": "string"
          }
        ],
        "responses": { "200": { "description": "OK" } },
        "produces": [ "application/vnd.collection+json" ]
      }
    }

enter image description here

1 Ответ

0 голосов
/ 31 августа 2018

APIM учитывает operationId, его значение используется для формирования идентификатора операции в качестве ресурса Azure. То, что вы видите в пользовательском интерфейсе, это название операции. Нельзя использовать operationId в качестве заголовка, потому что спецификация Open API гласит:

Уникальная строка, используемая для идентификации операции. Идентификатор ДОЛЖЕН быть уникальным среди всех операций, описанных в API. Инструменты и библиотеки МОГУТ использовать идентификатор операции для уникальной идентификации операции, поэтому рекомендуется следовать общим правилам именования программ.

Не хотелось бы следовать общепринятым правилам именования программ с названием операции. Поэтому вместо заголовка операции используется поле «Сводка».

Подробнее здесь: https://blogs.msdn.microsoft.com/apimanagement/2018/04/11/important-changes-to-openapi-import-and-export/

...