holydev / anyrest
AnyRest query language
v1.0.10
2021-10-01 17:21 UTC
Requires
None
Requires (Dev)
None
Suggests
None
Provides
None
Conflicts
None
Replaces
None
README
REST API Query interface The easiest way to implement unified REST interface instead of GraphQL
Doc request
Index
GET /any/doc
GET /any/docmd
GET /any/dochtml
Object
GET /any/doc?object=[objectName]
GET /any/docmd?object=[objectName]
GET /any/dochtml?object=[objectName]
Request format summary
{
"get": {
"tableName1": {
"filter": {"field1": "value1"},
"limit": 0,
"offset": 0,
"fields": [
"fieldName1",
"fieldName2",
"fieldName3"
]
},
"tableName2": {
"filter": {"field1": "value1"},
"fields": ["fieldName1", "fieldName2", {"object1" : ["fieldName1", "fieldName2"]}]
},
"tableName3": {
"filter": {"field1": "value1"},
"fields": ["*", {"object1" : "*"}]
}
},
"put": {
"tableName1": {
"id": 123,
"return": ["fieldName1"],
"values": {
"fieldName1" : "value1",
"fieldName2" : "value2"
}
}
},
"count": {
"tableName1": {
"filter": {"field1": "value1"}
}
},
"del": {
"tableName1": {
"id": 123
}
},
"meta": {
"tableName1": {}
}
}
GET query options
filter - search filter "key":value
limit - Records per request int
offset - Records from begin int
sort - Sorting field
fields - list of fields
"*" - return all fields of requested object (without relations) {"object1":"*"} - return all fields of inherited relation
[fieldName]
GET example
query
{
"get": {
"company": {
"filter": {"id":2},
"fields": ["id", "name", "statusId", "createdAt"]
},
"user": {
"filter": {"id":1},
"fields":["id", "username"]
}
}
}
response
{
"get": {
"company": [{
"id": 2,
"name": "newName",
"statusId": 1,
"createdAt": 1625616000
}],
"user": [{
"id": 1,
"username": "admin"
}]
}
}
PUT example
query
{
"put": {
"company": {
"return": ["id"],
"values": {"name" : "New item name"}
}
}
}
response
{
"put": {
"company": {
"id": 3
}
}
}
DEL example
query
{
"del": {
"company": {
"id": 123
}
}
}
response
{
"del": {
"company": {}
}
}
COUNT example
query
{
"count": {
"company": {}
}
}
response
{
"count": {
"company": 1121
}
}
META example
query
{
"meta": {
"company": {}
}
}
response
{
"meta": {
"company": {
"description": "Some table description",
"labels": {
"id": "ID",
"name": "Name",
"createdAt": "Creation datetime",
"updatedAt": "Last update datetime"
},
"types": {
"id": "integer",
"name": "string",
"createdAt": "integer",
"updatedAt": "integer"
},
"sizes": {
"id": null,
"name": null,
"createdAt": null,
"updatedAt": null
},
"precisions": {
"id": 32,
"name": null,
"createdAt": 32,
"updatedAt": 32
},
"scales": {
"id": 0,
"name": null,
"createdAt": 0,
"updatedAt": 0
}
}
}
}