模式校验
强制实施GraphQL格式约定和最佳实践
GraphOS提供模式检查来帮助您在每次更改图的模式时强制实施格式约定和其他GraphQL最佳实践。
ⓘ 注意
GraphOS方案检查仅分析您的修改后的方案与已发布方案的差异部分。它不会标记任何现有违规行为。
检查器配置
GraphOS架构检查器使用一组预先定义的规则来识别方案更改中的问题。预先定义的规则集包括构建设计规则。您定义的全局检查器默认设置适用于特定图形的所有变体。
要导航到您的检查器配置
- 在GraphOS Studio中,转到您图形的检查页面。
- 点击右上角的配置以打开检查配置页面。
- 从检查配置页面,打开检查器部分。
此页面将检查器选项组织成以下类别
- 常规检查器配置提供高级选项,包括完全禁用检查器。
- 批准的
@tag
名称允许您指定name
参数的批准值@tag
指令。此指令通常与GraphOS合约一起使用。- 如果您不使用
@tag
指令,您可以忽略此类别。 - 为
name
使用非批准的值会引发TAG_DIRECTIVE_USES_UNKNOWN_NAME
违规。
- 如果您不使用
- 规则严重性配置允许您为每条规则的违规行为设置严重性等级。
如果您为单个变体查看此配置,则每个类别在右上角显示一个使用图形设置切换。如果此切换已启用,则变体使用该类别为你设置的图形-wide默认值。目前,所有变体的使用图形设置切换始终启用。
设置严重性级别
您的代码检查器配置中的规则严重性配置类别会显示所有预定义规则以及每个规则的当前严重性水平。单击一个规则的严重性,可以将其设置为以下任何一个:
- 错误:违反此规则将导致相关的代码检查失败。
- 这反过来会导致整个架构检查运行失败,这在CI中的构建失败时很有用。
- 警告:违反此规则的违规将通知检查报告,但它们不会导致相关的代码检查失败。
- 忽略:此规则的违规将完全被忽略。
有关特定规则的更多信息,请参阅规则参考列表。
运行代码检查器
架构代码检查作为您图结构的graph's 架构检查部分自动运行。您也可以通过Rover CLI运行本地架构更改的单次代码检查。
通过架构检查运行代码检查器
如果您为您的graph设置了架构检查,架构代码检查将自动作为一个单独的检查类型在构建和operation检查旁边运行。您可以从Studio中图结构的检查页面查看所有检查类型的结果。例如,下面的截图显示了成功的构建和操作检查,但代码检查失败。
💡 技巧
为了获得运行代码检查的最佳体验,请安装 Rover CLI的v0.16或更高版本。Rover CLI的早期版本无法正确输出代码检查的结果,但如果代码检查失败,它们将以非零代码正确退出。
单次代码检查
ⓘ 注意
单次代码检查需要Rover CLI的v0.16或更高版本。安装最新版本。
Rover CLI提供了用于针对您的本地架构更改运行GraphOS代码检查器的subgraph lint
和graph lint
命令。
- 使用
subgraph lint
对supergraph中的子图进行代码检查。 - 使用
graph lint
对单子图进行代码检查(不推荐)。
以下rover subgraph lint
和rover graph lint
命令验证所有验证规则,除了组合规则。使用rover subgraph check
或rover supergraph compose
在本地验证组合规则。
rover subgraph lint --name products --schema ./products-schema.graphql my-graph@my-variant
示例中的my-graph@my-variant
参数是一个图引用,用于指定你正在比较你的模式更改的图的ID,以及你正在比较的变体。
命令选项包括
名称 | 描述 |
---|---|
| 必选。本地 |
| 必需用于 |
| 如果提供,则检查器仅标记您本地模式和已发布模式之间差异中的违规行为。 默认情况下,一次性的检查器标记本地模式中的所有违规行为。 |
检查器规则
查看此 规则参考列表。