我想使用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
那里有什么可以促进这个吗?
答案 0 :(得分:2)
在您的服务中,您可以获得包含以下内容的地图:
{:uri "/users" :query-params {:status 4}}
或类似的东西,至少。从那里,您可以使用honey sql或clojure.java.jdbc中的DSL。
我所知道的库没有直接从请求映射到sql查询,但实际上我们只是在谈论几行代码来完成你正在寻找的东西。
您所要求的不是灵活或可扩展的。如果需要将表移动到其他模式,该怎么办?如果网址应该改变怎么办?如果有人提出错误的查询参数会怎么样?暴露新表有多容易?等
在图书馆中合理地完成了太多特定于应用程序的决定。