Maison >développement back-end >C++ >Comment gérer plusieurs méthodes GET dans un seul contrôleur d'API Web ASP.NET ?
Contrôleur unique avec plusieurs méthodes GET dans l'API Web ASP.NET
Surmonter l'erreur de plusieurs actions correspondant à une requête peut être obtenu via la route définitions dans WebApiConfig.
La solution fournie préconise l'utilisation d'une combinaison de routes pour prendre en charge diverses méthodes GET et le REST standard méthodes :
routes.MapHttpRoute("DefaultApiWithId", "Api/{controller}/{id}", new { id = RouteParameter.Optional }, new { id = @"\d+" }); routes.MapHttpRoute("DefaultApiWithAction", "Api/{controller}/{action}"); routes.MapHttpRoute("DefaultApiGet", "Api/{controller}", new { action = "Get" }, new { httpMethod = new HttpMethodConstraint(HttpMethod.Get) }); routes.MapHttpRoute("DefaultApiPost", "Api/{controller}", new { action = "Post" }, new { httpMethod = new HttpMethodConstraint(HttpMethod.Post) });
Pour démontrer cela, considérons le contrôleur de test suivant :
public class TestController : ApiController { public string Get() { return string.Empty; } public string Get(int id) { return string.Empty; } public string GetAll() { return string.Empty; } [HttpPost] public void Post([FromBody] string value) { } [HttpPut] public void Put(int id, [FromBody] string value) { } [HttpDelete] public void Delete(int id) { } }
Avec les routes spécifiées, ce contrôleur peut gérer les requêtes suivantes :
GET /Test GET /Test/1 GET /Test/GetAll POST /Test PUT /Test/1 DELETE /Test/1
Cette solution garantit que même avec plusieurs méthodes GET, les points de terminaison RESTful restent intacts, offrant flexibilité et respect des normes HTTP. Notez que si vos actions GET ne commencent pas par « Get », vous pouvez ajouter l'attribut HttpGet pour plus de clarté.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!