Lassen Sie uns ein Testmodell haben. < /p>
public class TestRequestModel
{
public string Text { get; set; }
public int Number { get; set; }
}
< /code>
Ich möchte, dass dieser Dienst die folgenden Anfragen annehmen kann: < /p>
[*] Get /Test? Number = 1234 & text = myText < /strong> < /li>
post /test /test < /strong> mit dem Chefter: Anwendung/x-www-form-urlencoded und Körper: number = 1234 & text = MyText
post/test Mit Header: Content-type: Application/JSON {strong> {strong> {"text": " /> < /ul>
Die Routen sind auf folgende Weise konfiguriert: < /p>
_config.Routes.MapHttpRoute(
"DefaultPost", "/{controller}/{action}",
new { action = "Post" },
new { httpMethod = new HttpMethodConstraint(HttpMethod.Post) });
_config.Routes.MapHttpRoute(
"The rest", "/{controller}/{action}",
defaults: new { action = "Get" });
< /code>
Mein Controller sieht so aus: < /p>
public class TestController : ApiController
{
[HttpGet]
public TestResponseModel Get([FromUri] TestRequestModel model)
{
return Do(model);
}
[HttpPost]
public TestResponseModel Post([FromBody] TestRequestModel model)
{
return Do(model);
}
(...)
< /code>
Dies scheint eine akzeptable Menge an Kesselplattencode zu sein, aber ich möchte ihn immer noch vermeiden, wenn möglich. < /p>
Die zusätzliche Route ist auch nicht ideal. Ich habe Angst vor MVC/Webapi -Routen und ich glaube, sie sind böse.
Gibt es eine Möglichkeit, zwei Methoden und/oder die defaultPost Route zu vermeiden?
Unterstützung von Get * und * Post in WebAPI ⇐ C#
-
- Similar Topics
- Replies
- Views
- Last post