美化或缩短 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
也将接收并能够处理 GET
、POST
、PUT
和 DELETE
请求最大的灵活性。
看看什么methods the request module offers。
URL rewriting 上也有一些文档。它有点过时,但应该可以帮助您入门。
为了以您希望的方式进一步自定义和缩短 URL,您应该通过 nginx 代理请求。无论如何,这是在生产中 运行 existdb 的推荐方法,并允许您将请求路由到 /exist/apps/my-app/
或 /exist/rest/
到 /api/
.
这些 REST url 的想法是,它们清楚地描述了什么是 "meant",它们具有语义价值。因此,您应该保持原样,不要缩短它们,因为它是 REST 的一个关键特性,具有重要的论据。
考虑一下您的 API 有数十个控制器和数百个资源(API 方法、端点)。然后非常结构化和有意义的 url 是 为开发人员 保持组织有序和 消费者 可以理解的关键 [=24] =].
看看 resource naming guide and another 也描述了反模式。
eXist DB 中现成的 REST API 使用 URL 是这样的:
http://www.example.com/exist/rest/db/myapp/api/myxquery.xql
在我的例子中,用户将发送 PUT 和 DELETE 请求。
有什么理由可以 not/should 不提供像
这样更短的 URLhttp://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
也将接收并能够处理 GET
、POST
、PUT
和 DELETE
请求最大的灵活性。
看看什么methods the request module offers。 URL rewriting 上也有一些文档。它有点过时,但应该可以帮助您入门。
为了以您希望的方式进一步自定义和缩短 URL,您应该通过 nginx 代理请求。无论如何,这是在生产中 运行 existdb 的推荐方法,并允许您将请求路由到 /exist/apps/my-app/
或 /exist/rest/
到 /api/
.
这些 REST url 的想法是,它们清楚地描述了什么是 "meant",它们具有语义价值。因此,您应该保持原样,不要缩短它们,因为它是 REST 的一个关键特性,具有重要的论据。
考虑一下您的 API 有数十个控制器和数百个资源(API 方法、端点)。然后非常结构化和有意义的 url 是 为开发人员 保持组织有序和 消费者 可以理解的关键 [=24] =].
看看 resource naming guide and another 也描述了反模式。