微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何在 Oracle Application Express 侦听器中将 REST 查询参数作为可选参数传递?

如何解决如何在 Oracle Application Express 侦听器中将 REST 查询参数作为可选参数传递?

在 Oracle Application Express Listener 中,我们可以创建带有 URI 的 REST 端点,比如 users?limit={limit},其中限制了要获取的最大行数。

问题是,如果我们指定这样的 URI 并尝试仅访问 users获取所有用户,我会收到 404 错误,因为服务器找不到该 URI。

问题是,是否可以将这些查询参数设为可选?

我不知道我们有什么版本的 Apex,它看起来像这样:

enter image description here

解决这个问题的一个想法是一个黑客,它如下:将 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 举报,一经查实,本站将立刻删除。