2017-03-03 2 views
0

Ich entwerfe die Ords API und stieß auf das folgende Problem.Ords URL-Parameter funktioniert nicht

würde Ich mag die folgende api entwerfen:

/ords/schema_name/customers/?name=somename 

, die den Artikel zurückgeben könnte, wo die Spalte customer_name auf den Eingangsparameter name gleich ist, wenn sie auf die URL festgelegt ist.

Der ords Service definiert:

BEGIN 
    ORDS.DEFINE_SERVICE(
     p_module_name => 'customers' , 
     p_base_path => '/customers/', 
     p_pattern  => ':id?', 
     p_source  => 'select * from customers where customer_id = nvl(:id,customer_id) and UPPER(customer_name) = nvl(UPPER(:name),UPPER(customer_name))' 
    ); 

    COMMIT; 
END; 

jedoch die resonse ich bekam /ords/schema_name/customers/?name=somename anfordernden wie anfordernden /ords/schema_name/customers/ wie gleich ist. Es gibt alle Kunden aus der Datenbank zurück.

Ich habe auch versucht, Anfrage an /ords/schema_name/customers?name=somename zu senden. Nicht Glück auch.

Ich würde gerne wissen, warum die Parameter auf URL nicht funktioniert und wie man es repariert.

+0

Ich würde versuchen,/Ords/Schema/Kunden? Schlüssel = somekey. Beispiel für etwas ähnliches hier http://www.thatjeffsmith.com/archive/2017/03/a-tale-of-two-styles-of-uris-and-parameters-words/ – thatjeffsmith

+0

@thatjeffsmith Ich habe auch versucht, Anfrage zu senden zu '/ ords/schema_name/Kunden /? Schlüssel = somekey'. Nicht Glück auch. – fluency03

+0

@thatjeffsmith Aber ich sehe auch viele Beispiele auf Zeilen machen '.../Kunden /? Key = somekey'. – fluency03

Antwort

0

Es gibt mehrere Möglichkeiten, wie Sie nach ORDS abfragen können.

  1. Liste:http://<server>:<port>/ords/scott/emp
  2. Get durch Pk:http://<server>:<port>/ords/scott/emp/7788
  3. Sortierung:
    http://<server>:<port>/ords/scott/emp?q={"$orderby":{"ENAME":"ASC"}} http://<server>:<port>/ords/scott/emp?q={"$orderby":"SAL":"DESC","ENAME":"ASC"}}
  4. Filter:
    http://<server>:<port>/ords/scott/emp?q={"SAL":5000} 
    http://<server>:<port>/ords/scott/emp?q={"SAL":{"$eq":5000}} 
    

Hinweis: Wenn Sie die ORDS Installation im erweiterten Modus, dh verwenden. Wenn Sie einen separaten Tomcat Server zum Ausführen des ORDS-Servers verwenden, müssen Sie sich der Tomcat-Version bewusst sein. Die neueste Version des Tomcat [apache-tomcat-8.5.11,apache-tomcat-8.0.39] unterstützt den Abfrageparameter, aber Sie müssen das codierte Format übergeben, nicht die Ebene.

kodieren, die Sie gerade encodeURIComponent() Javascript-Funktion verwenden können:

encodeURIComponent('{"field_name": "<value>"}') 

Ebenso die apache-tomcat-8.0.30 die Ebene Abfrageparameter unterstützt.