【问题标题】:Is there a policy definition language for GraphQL APIs?GraphQL API 是否有策略定义语言?
【发布时间】:2019-11-25 12:20:29
【问题描述】:

我们有没有办法定义一个 GraphQL API 的策略,它既是机器可读的,也是人类可读的,它包含一组规则(换句话说,一个规范)来描述 API 的格式?我说的不是架构,而是一个规范,我们可以在其中添加与安全相关的详细信息(例如,要为每个字段分配的复杂度值和深度限制值)或任何其他相关详细信息。有什么想法或想法吗?或者我们可以在 SDL 本身内发送所有这些吗?

例如,对于 REST API,我们使用 Swagger 来定义有关如何定义路径、参数、响应、模型、安全性等的信息。 GraphQL API 是否需要类似的方法?非常感谢您的回复

【问题讨论】:

    标签: graphql


    【解决方案1】:

    我们正在努力为您的 GraphQL API 添加策略并允许您更好地管理它,尤其是当您将接口公开到外部时。

    部分挑战在于,与可以轻松与其他调用区分开来的 REST 调用相反,所有 GraphQL 请求看起来都一样,除非对传入查询执行更深入的分析。

    这篇博文描述了我们如何进行这种分析:https://www.ibm.com/blogs/research/2019/02/graphql-api-management/

    如果感兴趣,让我们联系吧!

    【讨论】:

    • 感谢您的回复!是的,这与我所问的类似,我们通过对查询进行更深入的分析来对 graphql 请求执行更细粒度的访问控制。虽然,我想到的政策与博客文章中建议的政策有些不同。但我们绝对可以通过这两种方法进行连接。我会尽快写一篇博客,将我建议的想法写出来,我会在我这样做的时候分享链接。
    【解决方案2】:

    据我了解,您需要一个工具来为您为参数等构建的 API 制作文档。 如果这就是您正在搜索的内容,那么 GraphQL 就像招摇 - Swagger-to-GraphQL

    希望对您有所帮助。!!

    【讨论】:

    • 感谢您的回答,但这不是我要说的。我想知道我们是否有办法为 GraphQL API 定义与安全相关的细节(允许的最大深度值、复杂性限制细节)。您建议的是一种将 swagger 模式转换为 GraphQL 模式的方法,但我已经有一个 GraphQL 模式。也许定义安全相关细节的东西会做(graphql 的新东西,就像 swagger 用于 REST)。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-10-21
    • 2020-03-09
    • 2022-06-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多