Heim >Backend-Entwicklung >C++ >Wie gehe ich mit mehreren GET-Methoden in einem einzelnen ASP.NET-Web-API-Controller um?
Einzelner Controller mit mehreren GET-Methoden in der ASP.NET-Web-API
Der Fehler, dass mehrere Aktionen einer Anfrage entsprechen, kann durch Route überwunden werden Definitionen in WebApiConfig.
Die bereitgestellte Lösung befürwortet die Verwendung einer Kombination von Routen, um verschiedene GET-Methoden und den Standard-REST zu unterstützen Methoden:
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) });
Um dies zu demonstrieren, betrachten Sie den folgenden Testcontroller:
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) { } }
Mit den angegebenen Routen kann dieser Controller die folgenden Anforderungen verarbeiten:
GET /Test GET /Test/1 GET /Test/GetAll POST /Test PUT /Test/1 DELETE /Test/1
Diese Lösung stellt sicher, dass die RESTful-Endpunkte auch bei mehreren GET-Methoden intakt bleiben und bietet so Flexibilität und Einhaltung von HTTP-Standards. Beachten Sie, dass Sie der Übersichtlichkeit halber das HttpGet-Attribut hinzufügen können, wenn Ihre GET-Aktionen nicht mit „Get“ beginnen.
Das obige ist der detaillierte Inhalt vonWie gehe ich mit mehreren GET-Methoden in einem einzelnen ASP.NET-Web-API-Controller um?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!