graphql服务器端验证

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了graphql服务器端验证相关的知识,希望对你有一定的参考价值。

我只想了解人们认为使用graphql / orm设置在服务器上验证用户输入文件(例如url或电子邮件地址)的最佳实践是什么。

我的应用程序正在使用apollo服务器/ gql并以续集作为orm。

[我见过一些在序列中对模型进行验证的人,以及使用验证库或自定义标量在graphql解析器中进行验证的其他示例。

任何一种方法都可取吗?谢谢。

答案

输入验证是某种AOP,例如身份验证和授权。据我所知,有五种方法可以做到这一点。

  • 使用常规方法在解析器中进行验证,例如if (validationPass) {...} else {..}-太冗长,使分解器变薄是最佳实践。因为这是某种路由层。不推荐
  • [使用合成库在解析器中进行验证,例如graphql-resolvers-推荐
  • 使用一些装饰器或模型架构定义在模型层(ORM)中进行验证。 -推荐
  • GraphQL模式指令中的验证-有点复杂,不推荐
  • GraphQL middleware中的验证-有点复杂,您需要设计中间件并将验证规则映射到相应的Query and Mutation,您很可能需要使用info参数来获得GraphQL操作。不推荐

以上是关于graphql服务器端验证的主要内容,如果未能解决你的问题,请参考以下文章

graphql服务器端验证

如何使用 Relay 处理服务器端输入验证?

nestjs 是不是支持 graphql 片段?

如何从 GraphQL 模式创建验证规则

是否可以从 Relay 突变访问 GraphQL 验证错误?

你可以在graphql服务器模式文件中使用片段吗