天天看點

前端技術之:如何Mock GraphQL接口資料

// 第一步:引入所依賴的庫

const { makeExecutableSchema, addMockFunctionsToSchema } = require('graphql-tools');

const { graphql } = require('graphql');

// 第二步:定義GraphQL Schema

const schemaString = `

  type User {

    id: ID,

    name: String,

    age: Int,

    address: String

  }

  type Query {

    user: User

  }

`;

// 樣例資料

const user = { id: 1, name: 'zhang' };

// 第三步:定義Resolver

const resolvers = {

  Query: {

    user: () => user

  }

};

// 第四步:調用makeExecutableSchema函數生成Schema對象

const schema = makeExecutableSchema({ typeDefs: schemaString, resolvers });

// 第五步:也是重要的一步,調用addMockFunctionsToSchema函數mock Schema

addMockFunctionsToSchema({

  schema,

  mocks: {

    Int: () => 6,

    Float: () => 22.1,

    String: () => 'Hello'

  }

});

// 第六步:也是最後一步,查詢并驗證結果

const query = `

query tasksForUser {

  user {

    id,

    name,

    age,

    address

  }

}

`;

graphql(schema, query).then(result => console.log('Got result', result));

// 參考資料網址: https://www.apollographql.com/docs/graphql-tools/mocking/

繼續閱讀