<分区>
我想使用 clojure 构建一个带有 RESTful API 的 Web 服务,该 API 公开存储在关系数据库(在本例中为 mysql)中的资源。我想使用一个库,给定数据库模式的规范,将传入的请求转换为数据库查询或 korma 构造。
示例可能是:
GET/users?status=4
翻译成类似的东西:
SELECT * FROM `users` WHERE `status` = 4;
或:
PUT/users/12
会是:
更新 `users` SET ... WHERE `id` = 12
有什么可以促进这一点的吗?
在您的服务中,您可以获得包含以下内容的 map :
{:uri "/users" :query-params {:status 4}}
或者至少是类似的东西。从那里,您可以使用 honey sql或 clojure.java.jdbc 中的 DSL .
据我所知,没有一个库可以直接从请求映射到 sql 查询,尽管实际上我们只是在谈论几行代码来完成您正在寻找的事情。
您要求的是不灵活或不可扩展的。如果您需要将表移动到不同的模式怎么办?如果 url 应该改变怎么办?如果有人输入错误的查询参数会发生什么?公开一个新表有多容易?等
有太多特定于应用程序的决定,因此无法在库中合理地完成。