3

我想使用 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

有什么可以促进这一点的吗?

4

1 回答 1

2

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

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

或者至少是类似的东西。从那里,您可以在clojure.java.jdbc中使用Honey sql或 DSL 。

我所知道的没有库可以直接从请求映射到 sql 查询,尽管实际上我们只是在谈论几行代码来完成您正在寻找的事情。

您要求的不是灵活或可扩展的。如果您需要将表移动到不同的模式怎么办?如果 url 应该改变怎么办?如果有人输入错误的查询参数会发生什么?暴露一个新表有多容易?等等

有太多特定于应用程序的决策无法在库中合理地完成。

于 2013-09-24T13:32:35.997 回答