如何解决如何在 Oracle Application Express 侦听器中将 REST 查询参数作为可选参数传递?
在 Oracle Application Express Listener 中,我们可以创建带有 URI 的 REST 端点,比如 users?limit={limit}
,其中限制了要获取的最大行数。
问题是,如果我们指定这样的 URI 并尝试仅访问 users
以获取所有用户,我会收到 404 错误,因为服务器找不到该 URI。
问题是,是否可以将这些查询参数设为可选?
我解决这个问题的一个想法是一个黑客,它如下:将 URI 声明为 users{params}
,其中 params
将是所有参数,然后在 PL/sql 中解析参数,这将工作,但确实很hacky。
解决方法
您无需在 URL 中明确定义查询参数。您可以在源代码中将它们作为绑定变量引用。
例如,如果我有一个员工表的 GET 资源
../example/employees
资源的来源可以是
select * from emp where mgr = :mgr or :mgr is null
如果我调用 ../example/employees 将返回所有员工(mgr 为空)
但是如果我调用 ../example/employees?mgr=7839 只会返回经理为 7839 的员工。
我也可以调用 ../example/employees?mgr=7839&limit=2,结果将限制为 2。
查看 Jeff 的链接,其中有一个很好的例子
https://www.thatjeffsmith.com/archive/2017/03/a-tale-of-two-styles-of-uris-and-parameters-words/
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。