Управление версиями ASP, UrlSegmentApiVersionReader, маршруты соответствуют бессмысленным номерам версий.C#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Управление версиями ASP, UrlSegmentApiVersionReader, маршруты соответствуют бессмысленным номерам версий.

Сообщение Anonymous »

Я использую библиотеку управления версиями ASP для создания версий Rest API контроллера MVC в микросервисе.

Код: Выделить всё

using Asp.Versioning;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Mvc.ModelBinding;

[ApiController]
[ApiVersion("1")]
[ControllerName("example")]
[Route("v{version:apiVersion}/[controller]")]
в этом контроллере у меня есть несколько действий, например. один, чтобы получить версию:

Код: Выделить всё

[HttpGet("version")]
[Produces("text/plain")]
[ProducesResponseType(StatusCodes.Status200OK)]
public IActionResult GetVersion() => ...
Если я выполняю операцию Curl GET с любым номером версии, я получаю соответствующий маршрут для версии. В некотором смысле это неудивительно, поскольку я использую для действия сопоставление, нейтральное по версии. Однако, учитывая, что маршрут контроллера имеет значение [ApiVersion] только 1, я ожидал, что любой другой необъявленный номер версии приведет к тому, что ошибка 404 не будет найдена.

Код: Выделить всё

curl -X GET http://localhost:8127/v1/system/version
0.0.0.0%
curl -X GET http://localhost:8127/v1337/system/version
0.0.0.0%
Я неправильно настроил это? Возможно ли, чтобы необъявленные версии отклонялись, а не сопоставлялись? В UrlSegmentApiVersionReader значение по умолчанию (и предполагается, что по умолчанию) не указано для моего кода, поскольку все версии явно указаны для версий URL.

Код: Выделить всё

services.AddApiVersioning(opt =>
{
opt.ApiVersionReader = new UrlSegmentApiVersionReader();
}).AddApiExplorer(opt =>
{
opt.GroupNameFormat = "'v'V";
});
Я следовал примеру, приведенному здесь в разделе ASP.NET Core с MVC (Core)

Подробнее здесь: https://stackoverflow.com/questions/786 ... ion-number
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C#»