如何为现有的graphql模式创建动态文档?

时间:2019-04-25 10:04:13

标签: graphql

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

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

我们该怎么做?

我正在搜索现有的解决方案或Swagger等文档软件。

1 个答案:

答案 0 :(得分:0)

您可以使用任意字符串(例如@Hidden)为要排除的类型和字段的描述添加前缀。然后只需派生graphql-markdown并对其进行修改,以排除那些对象和字段here

function isIgnored(typeOrField) {
  return typeOrField.description.startsWith('@Hidden')
}

const objects = types.filter(type => {
  return type.kind === 'OBJECT' && type !== query && type !== mutation && !isIgnored(type)
})

here

const fields = (isInputObject ? type.inputFields : type.fields)
  .filter(field => !isIgnored(field))