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

How can I pass REST query parameters as optional in Oracle Application Express Listener?

在 Oracle Application Express Listener 中,我们可以使用 URI 创建 REST 端点,假设 users?limit={limit} 限制要获取的最大行数。

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

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

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

我不得不解决这个问题的一个想法是遵循以下技巧:将 URI 声明为 users{params},其中 params 将是所有参数,然后解析 [=25= 中的参数], 这会起作用,但确实非常 hacky。

您不需要在 URL 中显式定义查询参数。您可以在源代码中将它们作为绑定变量引用。

例如,如果我有员工的 GET 资源 table

../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 查看这个 link,其中有一个很好的例子

https://www.thatjeffsmith.com/archive/2017/03/a-tale-of-two-styles-of-uris-and-parameters-words/