首页 > 解决方案 > 如何为现有的 graphql-schema 创建动态文档?

问题描述

我们想为我们现有的 graphql-schema 创建一个文档文件(然后我们会将其包含到我们的应用程序中)。现在我们导出一个 schema.graphql,然后使用 graphql-markdown 创建一个 .md 文件。

我们想要实现的是创建的文档可以忽略一些对象或属性,可能类似于不推荐使用的字段。最终的文档文件现在应该只包含未标记为忽略的对象。

我们怎么能这样做?

我搜索了现有的解决方案或文档软件,例如 Swagger。

标签: graphql

解决方案


您可以使用任意字符串为要排除的类型和字段的描述添加前缀,例如@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))

推荐阅读