枚举能否返回GraphQL中的描述(字符串)?

枚举能否返回GraphQL中的描述(字符串)?,graphql,graphql-js,Graphql,Graphql Js,我正在努力使用GraphQLAPI,因为我需要利用枚举,同时在前端保留它们的完整描述 简言之: 我对产品有不同的状态:“已发送”,“尚未发送”,“已接收”。 因此,这是使用枚举的正确位置: enum ProductState { HAS_BEEN_SENT NOT_SENT_YET RECEIVED } 但是我需要在前端显示正确的字符串(已发送),而不是“已发送”) 我不能使用简单的解决方案“用空格替换下划线并将字符串小写”,因为我的API不是英文的,而是法文的(所以我有重音和特殊

我正在努力使用GraphQLAPI,因为我需要利用枚举,同时在前端保留它们的完整描述

简言之: 我对产品有不同的状态:
“已发送”
“尚未发送”
“已接收”
。 因此,这是使用枚举的正确位置:

enum ProductState {
  HAS_BEEN_SENT
  NOT_SENT_YET
  RECEIVED
}
但是我需要在前端显示正确的字符串
已发送
),而不是“
已发送
”)

我不能使用简单的解决方案“用空格替换下划线并将字符串小写”,因为我的API不是英文的,而是法文的(所以我有重音和特殊字符)

枚举不能返回字符串吗?还是一个物体? 我尝试了指令,但不可能让它工作


实际上,我不在乎它是如何在数据库(大写或小写形式)中编写的,也不在乎它是如何在GraphQLAPI中编写的。我只需要我的客户端以“法语”形式访问不同的产品状态。

据我所知,在GRAPHQL中定义枚举只有一种受支持的语法,即您正在使用的语法不能将枚举与字符串值关联。

#NOTE: I would probably use a more descriptive name as opposed to ProductState
enum AllowedProductStatus { 
  HAS_BEEN_SENT
  NOT_SENT_YET
  RECEIVED
}
但是,如果使用apollo server,则可以使用解析器添加自定义值

const resolvers = {
  AllowedProductStatus: {
    HAS_BEEN_SENT: "Has been sent", 
    NOT_SENT_YET: "Not sent yet", 
    RECEIVED: "Received"
  }
};
或者,如果您只是想使其唯一,也可以使用指令@unique

type Product {
  status: String! @unique
}

希望能有所帮助