J'ai besoin d'éclaircissements sur la version de l'API dans le cadre de .Net Core.
Mon client souhaite que la version soit gérée au niveau du routeur. Comme
[Route("1/[controller]")]
public class SampleController : Controller
{
[HttpGet("version")]
public IActionResult GetVersion()
{
return Ok({"Message": "API Version 1"});
}
}
J'y accède en utilisant, https://www.somedomain.com/api/1/sample/version
Dans IIS, je créerai une application appelée "api" (le chemin "api" dans mon URL sera pris en compte ici) sous le site web par défaut et j'y hébergerai mon code.
Quelle est la meilleure façon de procéder pour obtenir une version de l'API ?
-
Puis-je le faire ?
[ApiVersion("1")] [Route("{version:apiVersion}/[controller]")] public class SampleController : Controller { [HttpGet("version")] public IActionResult GetVersion() { return Ok({"Message": "API Version 1"}); } [HttpGet("version"), MapToApiVersion("2" )] public IActionResult GetVersion() { return Ok({"Message": "API Version 2"}); } }
-
Est-il possible de créer une application sous une application dans IIS. Comme,
Site web par défaut - > api -> 1 -> Code sans mention de la version de l'API
Site web par défaut - > api -> 2 -> Code mis à jour sans mention de la version de l'API
- Ou puis-je créer les versions en tant qu'application dans IIS et déployer le code sous chaque version d'application. Par exemple,
Site web par défaut - > 1 -> Code sans mention de la version de l'API
Site web par défaut - > 2 -> Code mis à jour sans mention de la version de l'API
Cela entraînera une modification de l'URL de mon API, ce que je ne préfère pas. Je souhaite toujours conserver la même URI.
J'y accède en utilisant, https://www.somedomain.com/api/1/sample/version
Veuillez me conseiller sur la meilleure approche à adopter.