Graphql 返回枚举集合
Posted
技术标签:
【中文标题】Graphql 返回枚举集合【英文标题】:Graphql return enum collection 【发布时间】:2019-06-08 15:39:32 【问题描述】:我想使用graphql
返回枚举的所有值。
我有schema
:
schema
query: Query
type Query
getDataTypes: [DictionaryType]
enum DictionaryType
RISK
SALES_CHANNEL
PERSON_TYPE
我们有正常的 java 枚举:
public enum DictionaryType
RISK,
SALES_CHANNEL,
PERSON_TYPE
和Controller
配置:
public class DictionaryController
@Value("classpath:items.graphqls")
private Resource schemaResource;
private GraphQL graphQL;
private final DictionaryService dictionaryService;
@PostConstruct
public void loadSchema() throws IOException
File schemaFile = schemaResource.getFile();
TypeDefinitionRegistry registry = new SchemaParser().parse(schemaFile);
RuntimeWiring wiring = buildWiring();
GraphQLSchema schema = new SchemaGenerator().makeExecutableSchema(registry, wiring);
graphQL = GraphQL.newGraphQL(schema).build();
private RuntimeWiring buildWiring()
DataFetcher<Set<DictionaryType>> fetcher3 = dataFetchingEnvironment ->
return dictionaryService.getDictionaryTypes();
;
return RuntimeWiring.newRuntimeWiring().type("Query", typeWriting ->
typeWriting
.dataFetcher("getDataTypes", fetcher3))
.build();
@PostMapping("getDataTypes")
public ResponseEntity<Object> getDataTypes(@RequestBody String query)
ExecutionResult result = graphQL.execute(query);
return new ResponseEntity<Object>(result, HttpStatus.OK);
当我把POST
变成http://localhost:50238/getDataTypes
与身体:
getDataTypes
我得到"errorType": "InvalidSyntax",
作为回应。
【问题讨论】:
getDataTypes
工作,谢谢。
【参考方案1】:
这是一个无效的查询,因为您的大括号没有内容(即
)。您的架构表明查询应该更简单:
getDataTypes
【讨论】:
以上是关于Graphql 返回枚举集合的主要内容,如果未能解决你的问题,请参考以下文章
在 graphql-yoga 中返回枚举的解析器函数是啥样的?