0.0.29 • Published 7 years ago
schema-query v0.0.29
graphql-query
Cài module:
$ npm install --save schema-query
I. Tạo chuỗi query
import {SchemaQuery} from '@graphql/schema-query';
var schemaQuery = new SchemaQuery({schema: schemaJson});
var query = schemaQuery.mutation.sendChatMessageQuery({conversation_id: 1, sender: {uid: 1}, content: 'test', type: 'chat'});
// query =($conversation_id: ID!, $sender: UserInput, $content: String!, $type: String){response: sendChatMessage(conversation_id: $conversation_id, sender: // $sender, content: $content, type: $type)}
Options:
schema
:GraphQLSchema
dạng JSON
II. Tạo api sử dụng ở client
import {SchemaApi} from '@graphql/schema-query';
var schemaApi = new SchemaApi({schema: schemaJson});
var query = schemaApi.mutation.sendChatMessage({
url,
headers,
params: {
conversation_id: 1,
content: 'hi'
},
response
});
Options:
schema
:GraphQLSchema
dạng JSON
III. Sử dụng graphql dạng middleware trong express
import express from 'express';
import bodyParser from 'body-parser';
import {SchemaRestApi} from '@graphql/schema-query';
import schema from './schema';
let app = express();
let jsonParser = bodyParser.json()
let schemaRestApi = new SchemaRestApi({schema, middleware: true}, () => {
app.post('/sendMessage', jsonParser, this.mutation.sendChatMessage((req) => {
return {
rootValue: {user: req.data_.user, app: req.data_.app}, // data_ được gán ở middleware nào đó
response: '{message_id, content, createdAt, updatedAt}',
ignoreData: true
};
}));
app.listen(8000);
});
Options:
+ SchemaRestApi:
schema
:GraphQLSchema
middleware
: Nếu true, Tạo api ở dạng middware
+ middleware options: Có thể ở dạng object hoặc function. Nếu ở dạng function thì cần trả về options object
rootValue
: root param trong hàm resolve của graphqlresponse
: Định dạng response trong graphqlignoreData
: Không trả về trường dataformatParam
: Hàm tùy chọn dùng để định dạngvariables
của graphql excute. Nếu không có thìvariables
mặc định làreq.query
(GET) hoặcreq.body
(POST)