holydev/anyrest

AnyRest 查询语言

安装: 789

依赖: 0

建议者: 0

安全: 0

类型:rest-comonent

v1.0.10 2021-10-01 17:21 UTC

This package is not auto-updated.

Last update: 2024-09-28 08:14:48 UTC


README

REST API 查询接口 - 实现统一 REST 接口的简单方式,而不是 GraphQL

文档请求

索引

GET /any/doc

GET /any/docmd

GET /any/dochtml

对象

GET /any/doc?object=[objectName]

GET /any/docmd?object=[objectName]

GET /any/dochtml?object=[objectName]

请求格式摘要

{
  "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 查询选项

  • filter - 搜索过滤器 "key":value

  • limit - 每个请求的记录数 int

  • offset - 从开始记录的数 int

  • sort - 排序字段

  • fields - 字段列表

    "*" - 返回请求对象的所有字段(不含关系) {"object1":"*"} - 返回继承关系的所有字段

[fieldName]

GET 示例

查询

{
    "get": {
        "company": {
            "filter": {"id":2},
            "fields": ["id", "name", "statusId", "createdAt"]
        },
        "user": {
            "filter": {"id":1},
            "fields":["id", "username"]
        }
    }
}

响应

{
    "get": {
        "company": [{
            "id": 2,
            "name": "newName",
            "statusId": 1,
            "createdAt": 1625616000
        }],
        "user": [{
            "id": 1,
            "username": "admin"
        }]
    }
}

PUT 示例

查询

{
    "put": {
        "company": {
            "return": ["id"],
            "values": {"name" : "New item name"}
        }
    }
}

响应

{
  "put": {
    "company": {
      "id": 3
    }
  }
}

DEL 示例

查询

{
    "del": {
        "company": {
            "id": 123        
        }
    }
}

响应

{
  "del": {
    "company": {}
  }
}

COUNT 示例

查询

{
    "count": {
        "company": {}
    }
}

响应

{
  "count": {
    "company": 1121
  }
}

META 示例

查询

{
    "meta": {
        "company": {}
    }
}

响应

{
  "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
            }
      }
  }
}