Validation graphql服务器端验证

Validation graphql服务器端验证,validation,graphql,sequelize.js,apollo-server,Validation,Graphql,Sequelize.js,Apollo Server,我只是想了解人们认为在服务器上使用graphql/orm设置验证用户输入文件(如url或电子邮件地址)的最佳实践 我的应用程序使用apollo server/gql和sequelize作为orm 我见过一些人在sequelize中对模型进行验证,以及在graphql解析器中使用验证库或使用自定义标量进行验证的其他示例 有哪种方法更可取?谢谢。输入验证是一种类似身份验证和授权的验证。据我所知,有五种方法可以做到这一点 使用常规方法在解析器中进行验证,例如,if(validationPass){…

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

我的应用程序使用apollo server/gql和sequelize作为orm

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


有哪种方法更可取?谢谢。

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

  • 使用常规方法在解析器中进行验证,例如,
    if(validationPass){…}else{…}
    -过于冗长,保持解析器精简是最佳做法。因为它是某种路由层。不推荐
  • 使用组合库在解析器中进行验证,例如-推荐
  • 使用一些装饰器或模型模式定义在模型层(ORM)中进行验证。-无论您使用GraphQL、gRPC、soap WSDL、RESTful API,这都是传统的有效方法。从经典的MVC软件开发思想出发。推荐
  • GraphQL模式指令中的验证-有点复杂,不推荐
  • GraphQL中的验证-有点复杂,您需要设计中间件并将验证规则映射到相应的查询和变异,您很可能需要使用
    info
    参数来获得GraphQL操作。不推荐

感谢您的概述。由于Sequelize已经支持它,所以我最终在模型层完成了这项工作。