2016-12-02 15 views
1

私は、ExpressJSを使用してGraphQLサーバーを持っています。これはGraphQL-ツールを使用してスキーマです:GraphQL、工具なしでGraphQL GraphQLツールでユーザーを取得

import UserModel from '../models/User' 

export const Schema = ` 

type User { 
    id: Int! 
    firstName: String 
    lastName: String 
} 

type Query { 
    users: [User] 
} 

schema { 
    query: Query 
} 

` 

export const resolveFunctions = { 
    Query: { 
     users() { 
      return UserModel.findAll() 
     } 
    } 
} 

私は、ユーザーの完全なリストと、特定のユーザーを取得することができるが、私はGraphQL-ツールを使用していたときに、今私はどのように考えていますIDで特定のユーザーを取得します。

公式の文書を除いて、GraphQLツールでオンラインのリソースが見つかりませんでしたので、回答が見つかった他の人に役立つことを願っています。

ありがとうございました!

答えて

1

クエリを追加する必要があります

user(id: String!): User 

とハンドラ:

user(root, args, ctx) { 
    return UserModel.findOne({id: args.id}); 
} 

(あなたは私が必要な手順を概説パラメータの型とコールのセマンティクスを、調整する必要がある場合があります) 。

実例をご覧になる場合は、graphQL starter projectをご覧ください。私は最近、非常によく似たクエリを追加しました。

+0

תודהרבהמאיר:) – shabenda

+0

בשמחה: https://www.meetup.com/GraphQL-TLV/ – Meir

0

graphqlyをご覧ください。これは、graphql-toolsの上に構築された抽象で、Graphqlサービスの開発を容易にします。ここでgraphqlyとサンプルコードがあります:

import graphly from "graphqly"; 

const gBuilder = graphly.createBuilder(); 

// define types, inputs ... (in any order) 
gBuilder.type("Products").implements("List").def(` 
    products: [Product]! 
`); 

gBuilder.type("Product").def(` 
    id: ID! 
    name: String! 
    link: String 
    price: Int 
`); 

gBuilder 
.query(` 
    products(limit: Int = 20, offset: Int = 0, filter: ProductFilter): Products 
`) 
.resolve((root, args, context) => { 
    // your resolver here 
});