【问题标题】:GraphQL: Can Queries & Mutations be split into separate classes?GraphQL:查询和突变可以分成不同的类吗?
【发布时间】:2018-02-15 08:20:53
【问题描述】:

在我的 Graphene-Django 项目中,我有这样的结构:

项目级别:

schema.py

应用级别:

schema.py
queries.py
mutations.py

这很好用,但是查询文件变得非常大。有没有办法将 class Query 拆分为多个类和/或多个文件?

罗伯特

【问题讨论】:

    标签: django graphql graphene-python


    【解决方案1】:

    从项目架构文件的角度来看,您可以在 Query 类中使​​用继承来引入每个单独的 Query 类。您可以使用相同的技术来拆分您的 Mutation。例如:

    from django.conf import settings
    
    import graphene
    from graphene_django.debug import DjangoDebug
    
    from django.conf import settings
    
    from app1.schema import App1Query, App1Mutation
    from app2.schema import App2Query, App2Mutation
    
    class Query(App1Query, App2Query, graphene.ObjectType):
         if settings.DEBUG:
             # Debug output - see
             # http://docs.graphene-python.org/projects/django/en/latest/debug/
            debug = graphene.Field(DjangoDebug, name='__debug')
    
    class Mutation(App1Mutation, App2Mutation, graphene.ObjectType):
        pass
    
    schema = graphene.Schema(query=Query, mutation=Mutation)
    

    (请注意,如果 DEBUG 为 True,我也会动态添加调试类——这与您的问题无关,但它很方便。)

    如果需要,您应该能够使用相同的继承技术进一步拆分查询,例如拆分 App1Query。

    【讨论】:

      猜你喜欢
      • 2018-12-03
      • 2021-09-09
      • 2019-11-18
      • 2018-11-10
      • 2017-08-24
      • 2019-12-17
      • 2016-01-14
      • 2017-10-18
      • 2019-04-04
      相关资源
      最近更新 更多