2016-06-08 8 views
0

Ich mag eine Anfrage wieKann eine Ruheanforderung ein mehrdimensionales Array oder eine Karte eingeben?

foo.com/missions?type=flight&location=USA

in ein mehrdimensionales Array oder eine Karte drehen, damit ich sie später in einem Filter verwenden kann.

Die Namen der Parameter und die Anzahl der Parameter sind alle variabel.

Dies ist in C# mit WEB-API.

Zur Klarstellung:

[Route("missions")] 
[HttpGet] 
public HttpResponseMessage SearchMissions(Dictionary<string, string> filters) // Dictionary may not be the most appropriate; I'm new to C# 
{ 
    ... 
} 

Die Tasten sind Art und den Ort und die Werte sind Flug und den USA.

+0

Sie über POST kann, aber ich bezweifle, wenn – Sherlock

+0

Mögliche Duplikat mit GET [REST API Best Practice: Wie Liste der Parameterwerte als Eingabe akzeptieren] (http://stackoverflow.com/questions/2602043/rest -api-best-practice-how-to-receive-Liste-der-Parameter-Werte-als-Eingang) –

+0

@AlexandruMarculescu Ich habe diese andere Frage überprüft und, während gute Informationen, meine Frage nicht beantworten. Ich brauche eine Sammlung, die nicht nur den Wert der Eingabeparameter enthält, sondern auch die Namen der Eingabeparameter. Der Name der Sammlung, auf die im Code verwiesen wird, wäre eher "params" und nicht Typ oder Ort. – tenmiles

Antwort

1

Von dem, was Sie beschreiben, können Sie die Abfrage der Anfrage abrufen und in Schlüsselwertpaare parsen, mit denen Sie die benötigten Informationen extrahieren können.

[Route("missions")] 
[HttpGet] 
public HttpResponseMessage SearchMissions() { 

    //Get the parsed query string as a collection of key-value pairs. 
    IEnumerable<KeyValuePair<string, string>> filters = this.Request.GetQueryNameValuePairs(); 

    //... 
} 
Verwandte Themen