Qails 中包含两部分和 GraphQL 相关的内容:
一系列操作数据库的通用函数。
import { fetchList, fetchItem, create, update, destroy } from 'qails'; import User from './model'; import Post from '../post/model'; export default { User: { async posts(parent, args) { args = {...args, where: { user_id: parent.id } }; return await fetchList(Post, args); } }, Query: { users: async (_, args) => { return await fetchList(User, args); }, user: async (_, { id, ...args }) => { return await fetchItem(User, id, args); } }, Mutation: { createUser: async (_, { input }) => { return await create(User, input); }, updateUser: async (_, { id, input }) => { return await update(User, id, input); }, deleteUser: async (_, { id }) => { return await destroy(User, id); } } };
获取列表,可以使用 page&pageSize
或者 offset&limit
来控制分页。
where=id,>,10,name,like,%abc%
where
where
page
成为一组分页控制参数limit
limit
成为一组分页控制参数返回结果会包含两部分内容:
pagination
分页信息,当使用 page&pageSize
分页方式时,page
pageSize
才会有返回值,否则返回 undefined
,offset&limit
同理。rowCount
:{int} 记录总数pageCount
:{int} 页面总数page
:{int|undefined} 当前页码pageSize
:{int|undefined} 每页显示的记录数量offset
:{int|undefined} 获取记录的起始位置limit
:{int|undefined} 返回的记录数list
{array} 模型数据{ users { pagination { rowCount pageCount page pageSize offset limit } list [ { // id // ... } ] } }
无结果时返回 EmptyResponse
错误信息
{ "errors": [ { "message": { "message": "EmptyResponse" } } ], "data": { "users": null } }
获取一个对象模型。
返回结果匹配的对象模型数据。
{ // id }
无结果时返回 EmptyResponse
错误信息
{ "errors": [ { "message": { "message": "EmptyResponse" } } ], "data": { "user": null } }
增加一个对象模型。
返回新增的模型数据。
{ // id }
修改一个对象模型。
返回修改后的模型数据
{ // id }
当修改的模型不存在时,返回 No Rows Updated
错误信息
{ "errors": [ { "message": { "message": "No Rows Updated" } } ], "data": { "updateUser": null } }
删除一个对象模型。
返回被删除的模型数据。
{ // id }
当删除的模型不存在时,返回 EmptyResponse
错误信息
{ "errors": [ { "message": { "message": "EmptyResponse" } } ], "data": { "deleteUser": null } }
查考 GraphQL例子
如果你发现文档存在错误,请在 GitHub 提个 issue 告诉我们。