【发布时间】:2022-12-31 19:43:25
【问题描述】:
我们的后端使用 SQLAlchemy 作为我们的 ORM,我最近一直在尝试公开一个 graphql API,但我很难弄清楚如何自定义 Enum 是如何被石墨烯序列化的。
我们的 SqlAlchemy 对象都继承自我们编写的 BaseModel,并且我们创建了自己的 BaseEnum,所有 db.Enum 字段都继承了它,我们使用它来自定义包含在客户端有效负载中的字段,即如下,
someEnum: {
'value': <some_value>,
'label': <some_label>,
}
我一直无法弄清楚如何让石墨烯进行相同的序列化(或者如果它甚至可能/违反 grapqhl 的精神)。由于这些Enums作为字符串存储在我们的数据库中,如THE_ENUM_VALUE,这都是石墨烯的回报。
所以我想我有两个问题:
- 这甚至是使用 graphql 返回此类负载的正确方法吗?或者像这样的查询会更合适
{ someModel { someEnum { label value } } }- 我将如何覆盖序列化全部
Enum石墨烯返回的字段,所以我们不必为每个Enum字段编写自定义解析器? (有数百个)
- 我将如何覆盖序列化全部
【问题讨论】:
标签: python graphql graphene-python graphene-django graphene-sqlalchemy