美化或缩短 REST API 的 URL

Prettify or shorten URLs for REST API

eXist DB 中现成的 REST API 使用 URL 是这样的:

http://www.example.com/exist/rest/db/myapp/api/myxquery.xql

在我的例子中,用户将发送 PUT 和 DELETE 请求。

有什么理由可以 not/should 不提供像

这样更短的 URL
http://www.example.com/API/get-play.xql

然后在 eXist 控制器中重定向到:

http://www.example.com/exist/rest/db/shakespeare/api/myxquery.xql

即使阅读了文档,我仍然对这方面的安全隐患和复杂性一无所知。

Nb:使用 eXist 4.7

非常感谢。

您不需要使用 eXistdb 提供的 REST-API。 也许 restxq 就是您要找的。

此外,自定义应用程序中的 controller.xql 也将接收并能够处理 GETPOSTPUTDELETE 请求最大的灵活性。

看看什么methods the request module offersURL rewriting 上也有一些文档。它有点过时,但应该可以帮助您入门。

为了以您希望的方式进一步自定义和缩短 URL,您应该通过 nginx 代理请求。无论如何,这是在生产中 运行 existdb 的推荐方法,并允许您将请求路由到 /exist/apps/my-app//exist/rest//api/.

这些 REST url 的想法是,它们清楚地描述了什么是 "meant",它们具有语义价值。因此,您应该保持原样,不要缩短它们,因为它是 REST 的一个关键特性,具有重要的论据。

考虑一下您的 API 有数十个控制器和数百个资源(API 方法、端点)。然后非常结构化和有意义的 url 是 为开发人员 保持组织有序和 消费者 可以理解的关键 [=24] =].

看看 resource naming guide and another 也描述了反模式。