簡體   English   中英

Graphene:自定義 Enum 的序列化方式

[英]Graphene: customizing how Enum is serialized

我們的后端使用 SQLAlchemy 作為我們的 ORM,我最近一直在玩弄 graphql API,但我很難弄清楚如何自定義石墨烯序列化Enum的方式。

我們的 SqlAlchemy 對象都繼承自我們編寫的BaseModel ,我們創建了自己的BaseEnum ,所有db.Enum字段都繼承,我們用它來自定義包含在客戶端的有效負載中的字段,如下所示,

someEnum: {
    'value': <some_value>,
    'label': <some_label>,
}

我一直無法弄清楚如何讓石墨烯進行相同的序列化(或者如果它甚至可能/違反 grapqhl 的精神)。 由於這些Enums作為字符串存儲在我們的數據庫中,如THE_ENUM_VALUE ,這都是石墨烯的回報。

所以我想我有兩個問題:

  1. 這甚至是用 graphql 返回這種有效負載的正確方法嗎? 或者像這樣的查詢會更合適
{
  someModel {
    someEnum {
      label
      value
    }
  }
}
  1. 我如何覆蓋石墨烯返回的所有Enum字段的序列化,這樣我們就不必為每個Enum字段編寫自定義解析器? (有數百個)

對於尋找第二個問題的答案的每個人

       class MyEnum(graphene.Enum,):
            value: <some_value>,
            label: <some_label>,
        
            @property
            def description(self):
                return self.value

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM