加入我们,从10月8日至10日在纽约市,学习有关GraphQL联盟和API平台工程的最新的技巧、趋势和新闻。加入我们,参加2024年纽约市的GraphQL峰会
文档
免费开始

模式校验

强制实施GraphQL格式约定和最佳实践


提供模式检查来帮助您在每次更改图的模式时强制实施格式约定和其他最佳实践。

Linter violations in GraphOS Studio
  • 如果您为您的模式检查设置了,则检查作为独立的检查类型在构建操作旁边运行。
  • 您还可以使用Rover CLI执行一次性检查

注意

GraphOS方案检查仅分析您的修改后的方案与已发布方案的差异部分。它不会标记任何现有违规行为。

检查器配置

GraphOS架构检查器使用一组预先定义的规则来识别方案更改中的问题。预先定义的规则集包括构建设计规则。您定义的全局检查器默认设置适用于特定图形的所有

要导航到您的检查器配置

  1. GraphOS Studio中,转到您图形的检查页面。
  2. 点击右上角的配置以打开检查配置页面。
  3. 从检查配置页面,打开检查器部分。

此页面将检查器选项组织成以下类别

  • 常规检查器配置提供高级选项,包括完全禁用检查器。
  • 批准的@tag名称允许您指定name 的批准值@tag 。此指令通常与GraphOS合约一起使用。
  • 规则严重性配置允许您为每条规则的违规行为设置严重性等级

如果您为单个查看此配置,则每个类别在右上角显示一个使用图形设置切换。如果此切换已启用,则变体使用该类别为你设置的图形-wide默认值。目前,所有变体使用图形设置切换始终启用。

设置严重性级别

您的代码检查器配置中的规则严重性配置类别会显示所有预定义规则以及每个规则的当前严重性水平。单击一个规则的严重性,可以将其设置为以下任何一个:

  • 错误:违反此规则将导致相关的代码检查失败。
    • 这反过来会导致整个运行失败,这在CI中的构建失败时很有用。
  • 警告:违反此规则的违规将通知检查报告,但它们不会导致相关的代码检查失败。
  • 忽略:此规则的违规将完全被忽略。

有关特定规则的更多信息,请参阅规则参考列表

运行代码检查器

架构代码检查作为您图结构的graph's 架构检查部分自动运行。您也可以通过运行本地架构更改的单次代码检查。

通过架构检查运行代码检查器

如果您为您的graph设置了架构检查,架构代码检查将自动作为一个单独的检查类型在构建和operation检查旁边运行。您可以从Studio中图结构的检查页面查看所有检查类型的结果。例如,下面的截图显示了成功的构建和检查,但代码检查失败。

Checks page in Studio showing all check types

💡 技巧

为了获得运行代码检查的最佳体验,请安装 Rover CLI的v0.16或更高版本。Rover CLI的早期版本无法正确输出代码检查的结果,但如果代码检查失败,它们将以非零代码正确退出。

单次代码检查

注意

单次代码检查需要Rover CLI的v0.16或更高版本。安装最新版本。

Rover CLI提供了用于针对您的本地架构更改运行GraphOS代码检查器的subgraph lintgraph lint命令。

  • 使用subgraph lint中的进行代码检查。
  • 使用graph lint单子图进行代码检查(不推荐)。

以下rover subgraph lintrover graph lint命令验证所有验证规则,除了组合规则。使用rover subgraph checkrover supergraph compose在本地验证规则。

示例命令
rover subgraph lint --name products --schema ./products-schema.graphql my-graph@my-variant

示例中的my-graph@my-variant参数是一个图引用,用于指定你正在比较你的模式更改的图的ID,以及你正在比较的变体

命令选项包括

名称描述
--schema

必选。本地.graphql.gql文件的路径,以SDL格式

或者,你可以提供-,在这种情况下,命令使用通过stdin传入的stdin字符串(参见使用stdin)。

--name

必需用于 subgraph lint。对于 graph lint则省略。用于比较模式变化的已发布 名称。

--ignore-existing-lint-violations

如果提供,则检查器仅标记您本地模式和已发布模式之间差异中的违规行为。

默认情况下,一次性的检查器标记本地模式中的所有违规行为。

检查器规则

查看此 规则参考列表

上一页
连接到 GitHub
下一页
检查器规则
评价文章评价在 GitHub 上编辑编辑论坛Discord

©2024Apollo Graph Inc.,通常称为 Apollo GraphQL。

隐私政策

公司