如何使用新添加的数据库表字段更新 Saleor 的 Graphql 响应?



首先,使用GraphQl的Saleor很棒。只是喜欢它。

我们销售的产品还需要从GraphQl获得的其他元数据。开箱即用,GraphQl查询正常工作,例如:

{
  product (id: "UHJvZHVjdDo3Mg==") {
    id
    name
    description
  }
}

我需要做的是从我的产品表中使用其他列,例如ProductInfo1,ProductInfo2和ProductInfo3。这部分当然很容易。

但是,我正在努力更新saleor graphql,因此我可以运行以下查询:

{
  product (id: "UHJvZHVjdDo3Mg==") {
    id
    name
    description {
      productInfo1
      productInfo2
      productInfo3
    }
  }
}

我曾经经过Saleor文档,堆栈溢出和各种博客...我自己尝试了一些逻辑方法,而没有任何成功。

我渴望在此处开始为我们的需求处理这些类型的更新。任何建议或"如何"位置的链接将不胜感激!

如果您想将子字段添加到描述中,则需要做几件事:

  1. 创建新的描述对象类型,其中包含您想要的子字段,例如:
class ProductDescription(graphene.ObjectType):
    productInfo1 = graphene.String()
    productInfo2 = graphene.String()
    productInfo3 = graphene.String()
  1. Product下使用新类型设置description字段:
class Product(CountableDjangoObjectType):
    ...
    description = graphene.Field(ProductDescription)
  1. Product下为description添加解析器类型:
def resolve_description(self, info):
    return ProductDescription(
        productInfo1=self.description,
        productInfo2='Some additional info',
        productInfo3='Some more additional info',
    )

Saleor的GraphQl API基于石墨烯框架。您可以在此处找到有关解析器和对象类型的更多信息:https://docs.graphene-python.org/en/latest/types/objecttypes/#resolvers。

相关内容

  • 没有找到相关文章

最新更新