Unterstützung von Get * und * Post in WebAPIC#

Ein Treffpunkt für C#-Programmierer
Anonymous
 Unterstützung von Get * und * Post in WebAPI

Post by Anonymous »

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?

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post