0

GraphQL で Angular2 を使用する予定です。クライアントで GraphQL モデルを使用して動的にクエリを作成する方法を探しています。このアイデアをどのように実装できますか?

GraphQL モデルは次のようになります

exports default new GrapqhQLObjectType({
name: 'User',
description: 'A user type in our application',
fields: () => {
  _id:{
    type: new GraphQLNonNull(GraphQLID)
  },
  name:{
    type: new GraphQLNonNull(GraphQLString)
  },
  surname:{
    type: new GraphQLNonNull(GraphQLString)
  },
  age: {
    type: GraphQLInt
  }
    }
  });

すべての dataTypes は GraphQL.JS からインポートされます

この GraphQL モデルからクライアントのデータ データ型を検証したいと考えています。

GraphQL クエリは次のようになります

mutation RootMutation {
editUser (name: "Bjarne", age:64) {
    name
    surname
    _id
    age
}
}

Angular2 データの age 値を変更し、上記をリクエストしたいのですが、自動的に生成されました

4

1 に答える 1

0

これを行う 1 つの方法は、GraphQL のイントロスペクション クエリを文字列として送信してスキーマをイントロスペクトすることです (以下を参照)。スキーマから返された型をクロスチェックすることで、ネイティブ アプリで型の検証を実行できます。それ以外に、アプリに含める前に、GraphiQL ( https://github.com/graphql/graphiql ) を使用してリクエストを送信し、クエリ/ミューテーションが正しいことを確認できます。

query IntrospectionQuery {
 __schema {
 queryType { name }
 mutationType { name }
 subscriptionType { name }
 types {
 ...FullType
 }
 directives {
 name
 description
 locations
 args {
 ...InputValue
 }
 }
 }
}
fragment FullType on __Type {
 kind
 name
 description
 fields(includeDeprecated: true) {
 name
 description
 args {
 ...InputValue
 }
 type {
 ...TypeRef
 }
 isDeprecated
 deprecationReason
 }
 inputFields {
 ...InputValue
 }
 interfaces {
 ...TypeRef
 }
 enumValues(includeDeprecated: true) {
 name
 description
 isDeprecated
 deprecationReason
 }
 possibleTypes {
 ...TypeRef
 }
}
fragment InputValue on __InputValue {
 name
 description
 type { ...TypeRef }
 defaultValue
}
fragment TypeRef on __Type {
 kind
 name
 ofType {
 kind
 name
 ofType {
 kind
 name
 ofType {
 kind
 name
 }
 }
 }
}
于 2016-06-13T05:48:50.633 に答える