Я пытаюсь внедрить управление версиями URL в моем приложении .Net Core WebAPI.Я также использую веб-инструменты Swagger для простоты использования для пользователей.
Теперь, пытаясь ввести управление версиями в моем приложении, я сослался на документы здесь: https://github.com/Microsoft/aspnet-api-versioning/wiki/New-Services-Quick-Start#aspnet-core
Теперь я внес следующие изменения в свой код:
Запуск.cs / ConfigureServices Я добавил код ниже:
services.AddApiVersioning(options => {
options.AssumeDefaultVersionWhenUnspecified = true;
});
Теперь, аннотации моего контроллера перед добавлением любого вида версий выглядят так:
[Produces("application/json")]
[Route("api/controllerName")]
и выдает URL, который выглядиткак что-то ниже:
http://localhost:12003/swagger/#!/Workspace/GetAll
Теперь я добавил аннотации ниже, чтобы включить поддержку версий API:
. [ApiVersion("1.0")]
[Produces("application/json")]
[Route("api/v{version:apiVersion}/workspace")]
и теперь, когда я нажимаюпо тому же методу, указанному в моем пользовательском интерфейсе
, URL выглядит следующим образом:
http://localhost:12003/swagger/#!/controllername/ApiV_versionGetAll
В то время как я ожидал, было что-то вроде:
http://localhost:12003/swagger/#!/controllername/V1.0/GetAll
Также на моем чванстве теперь прямо просят ввести номер версии.Поэтому я думаю, что мой вопрос сводится к двум основным пунктам:
- Как я могу исправить свой URL?и что я делаю не так?
- Почему swagger теперь просит меня ввести номер версии в интерфейсе API, когда я явно заявил, что версия будет 1.0 в аннотации контроллера?