用于所有或少数架构字段的graphql单选查询

用于所有或少数架构字段的graphql单选查询,graphql,Graphql,我有一个类似于bellow的graphql模式 const SellerjobtypeType = new GraphQLObjectType({ name: 'Sellerjobtype', fields: () => ({ id: { type: GraphQLString }, sellerName: { type: GraphQLString }, sellerAdd: { type: GraphQLString }, status: { t

我有一个类似于bellow的graphql模式

const SellerjobtypeType = new GraphQLObjectType({
  name: 'Sellerjobtype',
  fields: () => ({
    id: { type: GraphQLString },
    sellerName: { type: GraphQLString },
    sellerAdd: { type: GraphQLString },
    status: { type: GraphQLString },
    requestRaiseTime: { type: GraphQLString },
    percent: { type: GraphQLString },
    runtime: { type: GraphQLString },
    jobid: { type: new GraphQLNonNull(GraphQLString) },
    specialinstructions: { type: GraphQLString }
  })
});
当我编写graphql服务器代码来获取sellerName的所有SellerjobtypeType时,我必须创建一个解析器端点

sellerjobtype: {
      type: SellerjobtypeType,
      args: { id: { type: GraphQLString}},
      resolve(parent, args) {
        return Sellerjobtype.findById(args.id);
      }
    }
这将仅基于id进行搜索

现在我想通过sellerName进行搜索,我创建了另一个端点

sellerjobtype2: {
  type: SellerjobtypeType,
  args: { sellerName: { type: GraphQLString}},
  resolve(parent, args) {
    return myObj.findByName(args.sellerName);
  }
}
如果我必须搜索其他字段,我会创建另一个端点

sellerjobtype: {
      type: SellerjobtypeType,
      args: { id: { type: GraphQLString}},
      resolve(parent, args) {
        return Sellerjobtype.findById(args.id);
      }
    }

这是否违背了graphql不必创建多个端点的目的。我想我犯了一个错误。请建议如何创建自定义端点,该端点可以处理基于SellerjobtypeType中全部或少数字段的所有搜索

您可以创建一个查询,该查询将通过id或名称进行解析,例如使用sql查询,其中id='something'或name='something'。这实际上不是一个与GraphQL相关的问题,它只是为您提供了一种模式语言和一个运行时,我们需要为数据编写解析器。因此,这一切都取决于您如何编写服务和数据模型。@pavan我的意思是在graphql查询中,如果您看到以下行参数:{sellerName:{type:GraphQLString},这意味着对于每一组新的参数,我都需要指定它们。因此,问题是我们是否可以指定1 go类型模式中的所有参数