graphql - 如何为现有的 graphql-schema 创建动态文档?
问题描述
我们想为我们现有的 graphql-schema 创建一个文档文件(然后我们会将其包含到我们的应用程序中)。现在我们导出一个 schema.graphql,然后使用 graphql-markdown 创建一个 .md 文件。
我们想要实现的是创建的文档可以忽略一些对象或属性,可能类似于不推荐使用的字段。最终的文档文件现在应该只包含未标记为忽略的对象。
我们怎么能这样做?
我搜索了现有的解决方案或文档软件,例如 Swagger。
解决方案
您可以使用任意字符串为要排除的类型和字段的描述添加前缀,例如@Hidden
. 然后只需 forkgraphql-markdown
并修改它以在此处排除这些对象和字段:
function isIgnored(typeOrField) {
return typeOrField.description.startsWith('@Hidden')
}
const objects = types.filter(type => {
return type.kind === 'OBJECT' && type !== query && type !== mutation && !isIgnored(type)
})
在这里:
const fields = (isInputObject ? type.inputFields : type.fields)
.filter(field => !isIgnored(field))
推荐阅读
- python - 如何将具有连续时间数字索引的 Pandas 数据帧中的数据重新采样、聚合值到离散整数时间?
- python - 根据列为 df 创建自定义存储桶
- javascript - 如何将数据保存在 JSON 文件中,以便每次我的 Discord Bot 注销时都不会重置数据
- java - Java流groupingBy并对多个字段求和
- css - 获取内联样式 CSS 属性
- pytorch - 如何使用脚本转换 pytorch 转换器?
- security - 如何在创建后向帐户添加密钥,例如多重签名合约,使用近壳、近 repl 或近 api-js?
- linux - Docker daemon 不断写入磁盘并导致 shell 命令运行缓慢
- powershell - Powershell:在条形图上放置第二个 X 轴
- javascript - 如何使用 Office.js 从 Excel 中的多个 NamedItem 获取格式?