我正在设计ords api并遇到以下问题。
我想设计以下api:
/ords/schema_name/customers/?name=somename
如果在网址上设置,则可以返回列customer_name
等于输入参数name
的项目。
定义了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
获得的共鸣与请求/ords/schema_name/customers/
相同。它从数据库返回所有客户。
我也尝试向/ords/schema_name/customers?name=somename
发送请求。也不运气。
我想知道为什么url上的参数不起作用以及如何修复它。
答案 0 :(得分:0)
您可以通过多种方式查询ORDS。
http://<server>:<port>/ords/scott/emp
http://<server>:<port>/ords/scott/emp/7788
http://<server>:<port>/ords/scott/emp?q={"$orderby":{"ENAME":"ASC"}}
http://<server>:<port>/ords/scott/emp?q={"$orderby":"SAL":"DESC","ENAME":"ASC"}}
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
。