0.0.29 • Published 8 years ago
schema-query v0.0.29
graphql-query
Cài module:
$ npm install --save schema-queryI. 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:GraphQLSchemadạ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:GraphQLSchemadạ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:GraphQLSchemamiddleware: 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ạngvariablescủa graphql excute. Nếu không có thìvariablesmặc định làreq.query(GET) hoặcreq.body(POST)