【问题标题】:Returning error from GrapQL-Java从 GraphQL-Java 返回错误
【发布时间】:2017-04-15 07:43:54
【问题描述】:

我想验证用户在突变期间提供的输入,如果提供了一些无效字段,则提供错误。

有一个问题回答了 GraphQL-JS here 的问题

我想问这个关于使用 GraphQL-Java 实现的问题。

假设您有一个将数据发布到 API 服务器的表单。 API 服务器验证输入并返回 JSON 对象。如果输入无效,则返回如下错误对象。

{errors: {field1: "is required"}}

在使用 GraphQL 时,我们如何处理和处理此类错误?应该如何以及在哪里实现数据验证(应该是 GraphQL 的一部分还是应该在每个解析函数中)?

【问题讨论】:

    标签: java error-handling graphql graphql-java


    【解决方案1】:

    graphql-java 实现有一个类用于检查查询是否无效(即graphql.validation.Validatior)。这样,您可以在执行查询字符串之前验证它们。

    如果查询无效,您可以创建一个将List<ValidationError> 作为参数的方法,以生成错误响应。

    例子:

    List<ValidationError> errors = validator.validateDocument(graphQLSchema, requestString);
    if (!errors.isEmpty()) { return executeError(errors); }
    

    【讨论】:

    • 只是一个注释。任何有效的 GraphQL 实现,包括 graphql-java,都会自行验证每个查询,并且无效查询永远不会触发执行。问题只是错误处理行为的可定制程度如何。
    猜你喜欢
    • 2018-05-20
    • 2018-09-24
    • 2021-08-07
    • 2019-07-12
    • 2018-08-31
    • 2020-09-12
    • 2019-02-02
    • 2020-01-15
    • 2017-10-23
    相关资源
    最近更新 更多