J'ai un projet dans lequel je souhaite utiliser les attributs d'itinéraire avec un type personnalisé. Le code suivant dans lequel le type personnalisé est défini en tant que paramètre de requête fonctionne correctement et la page d'aide affiche le type personnalisé.ApiExplorer ne reconnaît pas les attributs d'itinéraire avec le type personnalisé
// GET api/values?5,6
[Route("api/values")]
public string Get(IntegerListParameter ids)
{
return "value";
}
WebApi.HelpPage donne les documents suivants Help:Page
Si je change le code pour utiliser des attributs de route, le résultat est que je reçois une page d'aide vide.
// GET api/values/5,6
[Route("api/values/{ids}")]
public string Get(IntegerListParameter ids)
{
return "value";
}
Quand j'inspecte le code que je constate dans HelpController.cs que ApiExplorer.ApiDescriptions retourne une collection vide de ApiDescriptions
public ActionResult Index()
{
ViewBag.DocumentationProvider = Configuration.Services.GetDocumentationProvider();
Collection<ApiDescription> apiDescriptions = Configuration.Services.GetApiExplorer().ApiDescriptions;
return View(apiDescriptions);
}
Est-il possible d'obtenir ApiExplorer reconnaître ma IntegerListParameter de classe personnalisée comme attribut routage?
J'ai implémenté séparés par des virgules liste des nombres entiers. Cela fonctionne bien comme paramètres de requête et comme routage d'attributs. –
Mon problème est que l'helppage ne montre pas d'actions où la liste est un routage d'attribut. Le problème est que ApiExplorer.ApiDescriptions ne reconnaît pas l'action lorsque la liste est implémentée en tant que routage d'attribut. –