用于将REST查询转换为数据库查询的库(或库)?

时间:2013-09-24 12:10:24

标签: sql web-services rest clojure korma

我想使用clojure构建一个带有RESTful API的Web服务,该API公开存储在关系数据库中的资源(在本例中为mysql)。我想使用一个库,在给定db模式的规范的情况下,它会将传入的请求转换为db查询或korma构造。

示例可能是:

GET /users?status=4

转换为:

SELECT * FROM `users` WHERE `status` = 4;

或:

PUT /users/12

将是:

UPDATE `users` SET ... WHERE `id` = 12

那里有什么可以促进这个吗?

1 个答案:

答案 0 :(得分:2)

在您的服务中,您可以获得包含以下内容的地图:

{:uri "/users" :query-params {:status 4}}

或类似的东西,至少。从那里,您可以使用honey sqlclojure.java.jdbc中的DSL。

我所知道的库没有直接从请求映射到sql查询,但实际上我们只是在谈论几行代码来完成你正在寻找的东西。

您所要求的不是灵活或可扩展的。如果需要将表移动到其他模式,该怎么办?如果网址应该改变怎么办?如果有人提出错误的查询参数会怎么样?暴露新表有多容易?等

在图书馆中合理地完成了太多特定于应用程序的决定。