Лихач.Обновление AspNetCore получите аналогичный идентификатор операции

#swashbuckle

Вопрос:

текущее приложение с использованием Swashbuckle.AspNetCore версии 1.1.0 в этом году нацелен на выполнение платформы до .net core 3.1 или .net 5 одновременно с обновлением Swashbuckle.AspNetCore до 6.1.5 выясните, что у вас больше нет идентификатора операции и вам нужно настроить его со ссылкой https://github.com/domaindrivendev/Swashbuckle.AspNetCore/большой двоичный объект/мастер/README.md#назначить-явные-идентификаторы операций

меня беспокоит, как вернуть тот же идентификатор операции (такой же, как версия 1.1.0)

ниже приведен пример моего результата swagger json от версии 1.1.0

маршрут api с параметром (сложный)

 {
    "/api/Games/{id}": {
        "post": {
            "tags": ["Games"],
            "operationId": "ApiGamesByIdPost"
        }
    }
}
 

обычный образец

 {
    "/api/Games/Sequence": {
    "get": {
        "operationId": "ApiGamesSequenceGet"
}
 

я бы разрешил ниже один, используя

 options.CustomOperationIds(apiDesc =>
{
          return apiDesc.RelativePath.Replace("/", "")   apiDesc.HttpMethod;
});
 

но он разрешен только для обычного образца, но не для маршрута api с параметром

Ответ №1:

Вы можете поместить любую строку в Name свойство в атрибуте метода HTTP

 [HttpPost("someobject/add", Name = "ApiGamesSequenceGet")]
 

Swashbuckle примет это значение как operationId для вашего метода действий.