2017-12-12 3 views
1

Ich habe eine GET API-URL so etwas wie: /api/countries.
Ich möchte es nicht verwenden können mehrere Parameter wie Name & Code ... Um das zu erreichen suchen, ich /api/countries?name=pak&code=92
tun Aber was, wenn ich OR in url params zum Beispiel verwenden möchten /api/countries?name=pakORcode=92'ODER' mit GET URL-Parameter

+0

Was ist der Zweck der Verwendung von 'oder' in URL? werde ich es anstelle von '&' –

+1

genau verwenden, möchte ich die gleiche Variable zweimal wie 'api/countries? name = pakORname = can' – talesid

Antwort

0

Was Sie beschreiben, ist keine reguläre API-Aufruf. Sie können dieses Problem lösen auf 2 Arten

  • die Logik in Ihrem Controller erstellen, wo Sie die oder Anweisung
  • die ODATA REST-Protokoll implementieren implementieren.

Ich würde ODATA bevorzugen. Entity Framework unterstützt dies und Sie können dies sogar auf Ihren eigenen erstellten Listen implementieren.

In ODATA können Sie Filterausdrücke verwenden: Filter = name eq 610 oder Code eq 615

https://msdn.microsoft.com/en-us/library/hh169248(v=nav.90).aspx

+0

in meinem Controller verwenden, verwende ich bereits OR-Anweisung ... – talesid

+0

dann bist du nur Parameter übergeben. Das Festlegen einer Anweisung oder in der Abfragezeichenfolge ist Teil des Odatafilters. Wenn Sie es so implementieren, sollten Sie Ihre API dokumentieren – JMan

0

Wenn Sie verwenden oder wie Sie in Ihrer Frage gezeigt haben, dann wird es nicht (name funktionieren wird enthält den Wert pakORcode=92). Wenn dies etwas ist, was Sie in Betracht ziehen würden, könnten Sie explode verwenden, um Schlüssel-Wert-Paare um jedes OR zu teilen.

Sie könnten vielleicht auch eine dritte Variable haben, method. Sie könnten dies entweder auf AND oder OR setzen, dann würden Sie wissen, welche Methode zu verwenden?

Hoffe, das hilft

Verwandte Themen