npm 包 validate-graphql-page-args 使用教程

阅读时长 4 分钟读完

简介

validate-graphql-page-args 是一个基于 graphql 分页规范的参数校验库,用于校验前端传递的 graphql 分页查询参数是否符合标准。

安装

可以用 npm 进行安装:

使用

validate-graphql-page-args 暴露出一个名为 validatePageArgs 的方法,该方法接收一个 GraphQLResolveInfo 对象和一个 object 对象,返回一个校验结果对象。

-- -------------------- ---- -------
------ - ---------------- - ---- -----------------------------

----- -------- - -
  ------ ---
  ------ ------
  ----- ---
  ------- ------
--

----- -------------- - ---------------------- ----------
----------------------------
-- - ------ ------ -------- ----------- -- ------------ --- ---- -- --------- ---------- -

其中,infoGraphQLResolveInfo 类型的参数,该参数通常在 graphql 的 resolver 方法中被注入。pageInfo 则是前端传递的分页参数对象,它应该符合以下规范:

  • first: 非负整数,表示要查询的第一页的大小(可选)
  • after: 符合 cursor 格式的字符串,表示要查询的第一页的游标(可选)
  • last: 非负整数,表示要查询的最后一页的大小(可选)
  • before: 符合 cursor 格式的字符串,表示要查询的最后一页的游标(可选)

其中,cursor 格式是一个任意字符串,通常用来表示某个节点的唯一标识,这个标识应该能够反映出这个节点在原始数据中的位置。

validatePageArgs 方法会对传入的 pageInfo 对象进行校验,如果校验通过则返回一个 valid 属性为 true 的结果对象;否则返回一个 valid 属性为 false 的结果对象,并在 message 属性中提供出错信息。

校验规则

以下是 validate-graphql-page-args 会对传入的参数进行校验的规则:

  1. firstafter 必须同时存在,或者都不存在
  2. lastbefore 必须同时存在,或者都不存在
  3. firstlast 不能同时存在
  4. afterbefore 不能同时存在

校验结果

如果校验通过,则 validatePageArgs 返回一个对象,其 valid 属性为 true。否则,valid 属性为 falsemessage 属性包含出错的具体信息。

示例代码

graphql 的 resolver 中,我们可以先对前端传递的分页参数进行校验,如果校验成功则继续查询数据。如果校验失败,则可以通过抛出一个 Error 来报错。

总结

validate-graphql-page-args 可以帮助我们进行前端传递的 graphql 分页参数的校验,避免了因为前端传递的参数不规范而导致的错误。使用它可以让我们在进行 graphql 查询时更加安全和可靠。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/600556fa81e8991b448d3e07

纠错
反馈