2017-03-03 8 views
0

ords apiを設計しており、次の問題が発生しました。それがURLに設定されている場合、列customer_nameは、入力パラメータnameに等しいアイテムを返すことができordsパラメータが機能しません

/ords/schema_name/customers/?name=somename 

は、私は、次のAPIを設計したいと思います。

ordsサービスが定義されている:

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; 

しかし、私は/ords/schema_name/customers/?name=somenameを要求するからだresonseは/ords/schema_name/customers/を要求するなどと同じです。データベースからすべての顧客を返します。

/ords/schema_name/customers?name=somenameにもリクエストを送信しました。運もない。

なぜurlのパラメータが機能しないのか、それを修正する方法を知りたいと思います。

+0

私は/ ords/schema/customers?key = somekeyを試してみます。ここに類似したものの例http://www.thatjeffsmith.com/archive/2017/03/a-tale-of-two-styles-of-uris-and-parameters-words/ – thatjeffsmith

+0

@thatjeffsmith私もリクエストを送信しようとしました'/ ords/schema_name/customers /?key = somekey'に変更します。運もない。 – fluency03

+0

@thatjeffsmithしかし、私はまた、ライン上の多くの例が '.../customers /?key = somekey'をしているのを見ています。 URIにVARをまたは実行varは=、両方 をしないここに私のモジュールはデフ p_module_name => 'リッチモンド'、 p_base_path => '/リッチモンド/'、 p_pattern => '注文' です: – fluency03

答えて

0

ORDSを照会できるいくつかの方法があります。

  1. 一覧:PKでhttp://<server>:<port>/ords/scott/emp
  2. 取得:http://<server>:<port>/ords/scott/emp/7788
  3. がソート:
    http://<server>:<port>/ords/scott/emp?q={"$orderby":{"ENAME":"ASC"}} http://<server>:<port>/ords/scott/emp?q={"$orderby":"SAL":"DESC","ENAME":"ASC"}}
  4. フィルタリング:
    http://<server>:<port>/ords/scott/emp?q={"SAL":5000} 
    http://<server>:<port>/ords/scott/emp?q={"SAL":{"$eq":5000}} 
    

注:あなたがORDS詳細モードインストールのつまりを使用している場合。別のTomcatサーバーを使用してORDSサーバーを実行する場合は、tomcatバージョンを認識する必要があります。 tomcat [apache-tomcat-8.5.11,apache-tomcat-8.0.39]の最新バージョンはクエリパラメータをサポートしていますが、プレーンではなくエンコード形式を渡す必要があります。エンコードするために

、あなただけのencodeURIComponentで() javascript関数を使用できます。同様に

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

、プレーンなクエリパラメータをサポートしていapache-tomcat-8.0.30を。

関連する問題