文件名称:rql:REST的资源查询语言
文件大小:209KB
文件格式:ZIP
更新时间:2024-02-20 15:11:17
go web-development sql orm rest-api
RQL是REST的资源查询语言。 它提供了一个简单而轻巧的API,用于向使用基于SQL的数据库的Web应用程序添加动态查询功能。 它充当HTTP处理程序和DB引擎之间的连接器,并管理用户输入的所有验证和转换。 动机 在过去的几年中,我发现自己在Go中使用不同的Web应用程序,其中一些很小,有些很大,并且具有许多实体和关系。 在所有情况下,我都找不到一个简单而标准的API来查询我的资源。 查询是什么意思? 假设我们的应用程序有一个orders表,我们希望我们的用户能够通过动态参数进行搜索和过滤。 例如:选择今天起价格大于100的所有订单。 为了实现这一点,我习惯在查询字符串中传递这些参数,如下所示: created_at_gt=X&price_gt=100 。 但是有时候,当我需要在两个条件之间进行求和时,情况就变得复杂了。 例如,当我想选择上周取消或创建但仍未发货的所有订单时。 而在SQL语法中: SELECT * FROM ORDER WHERE canceled = 1 OR (created_at < X> Y AND shipped = 0
【文件预览】:
rql-master
----.travis.yml(145B)
----rql_test.go(21KB)
----bench_test.go(2KB)
----assets()
--------logo.png(41KB)
--------diagram.png(158KB)
----rql.go(17KB)
----config.go(5KB)
----examples()
--------simple.go(2KB)
----.gitignore(6B)
----fuzz()
--------rql.go(580B)
----.circleci()
--------config.yml(573B)
----go.sum(227B)
----integration()
--------rql_test.go(6KB)
--------Dockerfile(127B)
--------docker-compose.yaml(446B)
--------Makefile(118B)
----README.md(14KB)
----rql_easyjson.go(5KB)
----go.mod(106B)