首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >草莓GraphQL回归切片

草莓GraphQL回归切片
EN

Stack Overflow用户
提问于 2022-05-04 13:34:00
回答 1查看 1.5K关注 0票数 1

我想要创造一个突变,以一个二分法为论据。有一些特定于实现的原因需要这样做,而不是为dict对象创建类型/模式。

对象

代码语言:javascript
复制
# types.py
import typing


@strawberry.type
class Thing:
    data: typing.Dict

Resolver

代码语言:javascript
复制
# resolvers.py
import typing
from .types import Thing


def create_config(data: typing.Dict) -> Thing:
    pass

突变模式

代码语言:javascript
复制
# mutations.py
import strawberry

from .types import Thing
from .resolvers import create_thing


@strawberry.type
class Mutations:
    create_thing: Thing = strawberry.mutation(resolver=create_thing)

所需的示例查询

代码语言:javascript
复制
mutation {
    createThing(data: {}) {}
}

通过阅读文档,没有一个GraphQL标量等价于一个dict。当我尝试测试时,这个编译错误就证明了这一点:

TypeError: Thing fields cannot be resolved. Unexpected type 'typing.Dict'

我的本能反应是将数据块压平成JSON字符串,并以这种方式传递。这似乎不雅致,这让我觉得有一个更惯用的方法。从这里我该去哪里?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-05-05 16:08:08

JSON本身可以是标量,而不是序列化的JSON字符串。

代码语言:javascript
复制
from strawberry.scalars import JSON

@strawberry.type
class Thing:
    data: JSON

def create_config(data: JSON) -> Thing:
    pass
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72113851

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档