PinusProxy是为松果时序数据库(PinusDB)提供Restful的服务,一个PinusProxy可以为多个PinusDB提供Restful服务。 本项目仅仅是一个示例,并不包含用户验证。
visual studio 2019 + asp.net core 3.1
proxy.xml
服务配置ServerSet下每一个Server项都是一个数据库服务。
server配置项
每个TableSet对应一个Restful可以访问的数据表。
table配置项
名字 | 类型 | 是否必须 | 描述 |
---|---|---|---|
Field | 字符串 | 是 | 字段名 |
Op | 字符串 | 是 | 比较运算 |
Value | ? | 否 | 比较值 |
Op 取值
isnull : 指定的字段值是否为空,无Value参数。
isnotnull : 指定的字段值是否非空,无Value参数。
eq : 等于,可以用于bigint,datetime, double及string数据类型。
ne : 不等于, 可以用于bigint,datetime, double及string数据类型。
lt : 小于, 可以用于bigint,datetime,double数据类型。
le : 小于等于,可以用于bigint,datetime,double数据类型。
gt : 大于,可以用于bigint,datetime,double数据类型。
ge : 大于等于, 可以用于bigint,datetime,double数据类型。
like : 模式匹配,可以用于string类型,可以使用通配符%。
in : 值位于指定的数组内,可以用于bigint类型。
notin : 值不位于指定的数组内,可以用于bigint类型。
[
{"AliasName":"tab01","TableName":"tab01","ServerName":"server1"}
]
名字 | 类型 | 是否必须 | 描述 |
---|---|---|---|
Table | 字符串 | 是 | 表名 |
Fields | 字符串列表 | 是 | 查询的列 |
Conditions | 查询条件列表 | 否 | 查询条件 |
Offset | 数字 | 否 | 跳过条数 |
Limit | 数字 | 否 | 查询条数,默认为1000, 不大于10000 |
请求示例:
{
"Table":"tab01",
"Fields":["devid","tstamp","val01","val02"],
"Conditions":[{"Field":"devid", "Op":"eq", "Value":10}],
"Limit":5
}
返回示例:
{
"err":0,
"data":
[
{"devid":10,"tstamp":1582449065073,"val01":false,"val02":3378},
{"devid":10,"tstamp":1582449070073,"val01":false,"val02":9733},
{"devid":10,"tstamp":1582449075073,"val01":false,"val02":16130},
{"devid":10,"tstamp":1582449080073,"val01":true,"val02":22529},
{"devid":10,"tstamp":1582449085073,"val01":false,"val02":28876}
]
}
{
"Table":"tab01.snapshot",
"Fields":["devid","tstamp","val01","val02"],
"Limit": 3
}
返回示例:
{
"err":0,
"data":
[
{"devid":1,"tstamp":1582461490073,"val01":true,"val02":-179517},
{"devid":2,"tstamp":1582461490073,"val01":true,"val02":-179427},
{"devid":3,"tstamp":1582461490073,"val01":true,"val02":-179415}
]
}
名字 | 类型 | 是否必须 | 描述 |
---|---|---|---|
Table | 字符串 | 是 | 表名 |
Fields | 聚合字段列表 | 是 | 查询的列 |
Conditions | 查询条件列表 | 否 | 查询条件 |
Offset | 数字 | 否 | 跳过条数 |
Limit | 数字 | 否 | 查询条数,默认为1000,不大于10000 |
请求示例:
{
"Table":"tab01",
"Fields":
[
{"Aggregator":"none", "Field":"devid", "Alias":"devid"},
{"Aggregator":"max", "Field":"val02", "Alias":"max_val02"}
],
"Limit": 3
}
返回示例:
{
"err":0,
"data":
[
{"devid":1,"max_val02":199981},
{"devid":2,"max_val02":199964},
{"devid":3,"max_val02":199965}
]
}
名字 | 类型 | 是否必须 | 描述 |
---|---|---|---|
Table | 字符串 | 是 | 表名 |
Fields | 聚合字段列表 | 是 | 查询的列 |
Conditions | 查询条件列表 | 否 | 查询条件 |
GroupTstamp | 数字 | 是 | 毫秒数 |
Offset | 数字 | 否 | 跳过条数 |
Limit | 数字 | 否 | 查询条数,默认为1000,不大于10000 |
以1分钟为聚合,请求示例:
{
"Table":"tab01",
"Fields":
[
{"Aggregator":"none", "Field":"tstamp", "Alias":"tstamp"},
{"Aggregator":"max", "Field":"val02", "Alias":"max_val02"}
],
"Conditions":
[
{"Field":"tstamp", "Op":"gt", "Value":"2020-2-23 18:0:0"},
{"Field":"devid", "Op":"eq", "Value": 123}
],
"GroupTstamp":60000,
"Limit": 3
}
返回示例:
{
"err":0,
"data":
[
{"tstamp":1582452000000,"max_val02":null},
{"tstamp":1582512000000,"max_val02":null},
{"tstamp":1582572000000,"max_val02":null}
]
}
名字 | 类型 | 是否必须 | 描述 |
---|---|---|---|
Table | 字符串 | 是 | 表名 |
Fields | 聚合字段列表 | 是 | 查询的列 |
Conditions | 查询条件列表 | 否 | 查询条件 |
请求示例:
{
"Table":"tab01",
"Fields":
[
{"Aggregator":"count", "Field":"devid", "Alias":"count_num"}
]
}
返回示例:
{
"err":0,
"data": [{"count_num":248600}]
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。