Gewusst wie: übergeben/empfangen, mehrere Argumente zu einem RESTful-Web-API-GET-Methode?
Den üblichen Beispiele finden Sie Erholsamen Methoden, die einen parameter (Rückgabe eines skalaren Wert eher als ein Datensatz) angezeigt etwa so:
public string Get(int id)
{
//get and return the value
}
...wo das val übergeben ist in der Regel eine ID, so können Sie es verwenden, um einen skalaren Wert, basierend auf den einzigartigen Wert.
Was aber, wenn Sie übergeben möchten mehrere Werte, wie ein string und ein int? Ist es einfach eine Sache der Definition einer Methode in etwa so:
public string Get(string someString, int someInt)
{
//get and return the value
}
...und nannte es so:
//const string uri = "http://192.112.183.42:80/api/platypusItems/someString/someInt";, zB:
const string uri = "http://192.112.183.42:80/api/platypusItems/DuckbilledPlatypisAreGuysToo/42";
var webRequest = (HttpWebRequest) WebRequest.Create(uri);
?
IOW, wird der routing-Mechanismus herauszufinden, dass da zwei Argumente übergeben werden, sollte es die Get () - Methode mit zwei args ("convention over configuration"), oder gibt es noch mehr, was getan werden muss, um die route, die Dinge richtig?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn Sie Web API 2, dann können Sie Attribut-Routing-route-requests wie
http://192.112.183.42:80/api/platypusItems/DuckbilledPlatypisAreGuysToo/42
http://192.112.183.42:80/api/platypusItems/DuckbilledPlatypisAreGuysToo/42
zugeordnet werdenGetItemByNameAndId
währendhttp://192.112.183.42:80/api/platypusItems/42
zugeordnet werdenGetItemById
.Beachten Sie, dass Sie brauchen, um zu aktivieren Attribut-routing in der Konfiguration wie diese:
Aber generell sollte man Argumente übergeben, die als zusätzliche Parameter. Es ist besonders einfach mit GET-Anfragen. Dies funktioniert in Web-API-1&2:
Angenommen, Sie haben Standard-mapping-Konfiguration
http://192.112.183.42:80/api/platypusItems/42
zugeordnet werdenGetItemById
währendhttp://192.112.183.42:80/api/platypusItems/42?name=DuckbilledPlatypisAreGuysToo
zugeordnet werdenGetItemByNameAndId
weil Web-API können die Karte 2 Parameter statt 1 fürGetItemById
.Mehr Informationen finden Sie in Mike Wasson Artikel auf Attribut-Routing, Routing-und Action Auswahl und Routing in Web API.