schema-query

0.0.29 • Public • Published

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 graphql
  • response: Định dạng response trong graphql
  • ignoreData: Không trả về trường data
  • formatParam: Hàm tùy chọn dùng để định dạng variables của graphql excute. Nếu không có thì variables mặc định là req.query(GET) hoặc req.body (POST)

Dependencies (7)

Dev Dependencies (11)

Package Sidebar

Install

npm i schema-query

Weekly Downloads

4

Version

0.0.29

License

ISC

Last publish

Collaborators

  • thanhtuan