Naboo's Podracing Misadventure
Wondering what’s next for npm?Check out our public roadmap! »

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)

Keywords

none

Install

npm i schema-query

DownloadsWeekly Downloads

1

Version

0.0.29

License

ISC

Last publish

Collaborators

  • avatar