如何为现有的 graphql-schema 创建动态文档?

Posted

技术标签:

【中文标题】如何为现有的 graphql-schema 创建动态文档?【英文标题】:How to create a dynamic documentation for an existing graphql-schema? 【发布时间】:2019-09-14 17:35:52 【问题描述】:

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

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

我们怎么能做到这一点?

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

【问题讨论】:

【参考方案1】:

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

【讨论】:

感谢您的回答,我一定会尝试的。

以上是关于如何为现有的 graphql-schema 创建动态文档?的主要内容,如果未能解决你的问题,请参考以下文章

如何为现有的 WCF 服务原生启用 JSONP?

如何为现有的动态网站制作android应用

如何为现有的本地集群配置和启用 Azure Service Fabric 反向代理?

如何为现有的非 android Eclipse 项目制作 android manifest?

如何为新的面板类重用现有的布局代码?

如何为现有的 CakePHP (2) 项目添加新的 url 路由