GraphQL-显示列表或单个对象



我设法通过GraphQl获取以下数据:

 {
  "data": {
    "city": {
      "name": "Eldorado",
      "users": [
        {
          "username": "lgraham1"
        },
        {
          "username": "ehowell"
        },
        {
          "username": "cbauch"
        }
      ]
    }
  }
}

我有QueryType,CityType和UserType。在我的QueryType中,我以GraphQllist(USERTYPE)来获取城市并显示用户。如果我想显示单个用户,该怎么办?

我的API看起来像这样:

all cities:
  /cities/
single city:
  /cities/:city_id
users for particular city:
  /cities/:city_id/users
single user:
  /cities/:city_id/users/:user_id

您需要在主查询对象中添加user查询。

假设您的idInteger,您将执行此操作

const Query = new GraphQLObjectType({
  name: 'RootQuery',
  fields: {
    // ...
    user: {
      type: User,
      args: {
        id: {
          type: new GraphQLNonNull(GraphQLInt)
        }
      },
      resolve: function(rootValue, args) {
        return db.users.findOne(args)
      }
    }
  }
})
const Schema = new GraphQLSchema({
  query: Query,
  // ...
});

然后您可以使用

查询
{
  user (id: 12345) {
    ...
  }
}

或者您可以制作功能

query findUser ($id: Int!) {
  user (id: $id) {
    ...
  }
}

相关内容

最新更新