首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

GraphQL不适用于公共API

GraphQL是一种用于构建API的查询语言和运行时环境。它提供了一种灵活且高效的方式来获取客户端所需的数据,并且可以减少网络传输的数据量。然而,尽管GraphQL在很多方面都非常强大,但它并不适用于公共API的场景。

首先,GraphQL的查询语言非常灵活,允许客户端自由地指定需要的数据结构和字段。这种灵活性对于内部API或特定领域的API非常有用,因为它们可以更好地满足特定需求。然而,对于公共API来说,这种灵活性可能会导致滥用和安全问题。公共API需要提供一致且可预测的数据结构,以便开发者能够轻松地使用和集成API。GraphQL的灵活性可能会导致开发者难以理解和使用API,从而增加了学习和集成的难度。

其次,GraphQL的查询语言和运行时环境相对复杂。相比于传统的RESTful API,GraphQL需要更多的学习和理解。这对于开发者来说可能是一个挑战,特别是对于那些刚开始接触API开发的人来说。公共API通常需要简单且易于理解的接口,以便开发者能够快速上手并开始使用API。GraphQL的复杂性可能会阻碍开发者的学习和使用,从而降低公共API的普及度。

最后,GraphQL在性能方面可能存在一些挑战。由于GraphQL的查询语言非常灵活,客户端可以自由地指定需要的数据结构和字段。这可能导致客户端请求过多的数据,从而增加了服务器的负载和网络传输的数据量。对于公共API来说,性能是一个非常重要的考虑因素。公共API需要能够处理大量的请求并保持良好的性能。GraphQL的灵活性可能会导致性能问题,特别是在面对大量请求的情况下。

综上所述,尽管GraphQL在很多方面都非常强大,但它并不适用于公共API的场景。公共API需要提供一致且可预测的数据结构,易于学习和使用,并具有良好的性能。对于公共API的需求,可以考虑使用其他更适合的技术和工具来构建和提供API服务。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

为 Django 配备 GraphQL API

前文再见 REST,你好 GraphQL提到,GraphQL 使得前端按需请求后端数据,前后端接口不再高度耦合,可以大大提高前后端的开发效率,从而快速进行产品迭代。...Github v4 版外部 API 只使用 GraphQL,可见 GraphQL 是一个明显的趋势,值得我们去学习和使用。今天就分享一下如何为 Django 配置 GraphQL API。...graphene-django 就是为 Django 提供 GraphQL API 的三方库。...总结 GraphQL 非常强大,并且可以快速集成 Django 模型,从而可以非常方便的将你的应用 api 转换为 GraphQL 风格。如果你想了解更多用法,请阅读 Graphene 官方文档。...本文分享了后端用 Django 实现 GraphQL API 的 demo,下一次分享如果在前端使用 GraphQL,让 GraphQL 在前后端都跑起来。

82820

GraphQL 可代替 REST API ?

GraphQL 是一个未接触的东东,有博主认为它可以代替 Rest API。那么真的可以代替吗?...二、GraphQL 与 Rest API GraphQL 想从一个「刁钻」角度代替 Rest APIAPI。...GraphQL是Facebook于2012年创造的一种用于描述CS应用中数据模型的能力和要求的语言。 拥有语言、类型系统、内省、验证、执行、响应六大部分。...如果说 GraphQL 是「数据中心」查询 API 的解决方案,那么 GraphQL 自身在查询这件事上都有哪些优势? 如果说 GraphQL 是还在演进未完成的新语言,那么会是一个新的风口吗?...当时,我是持反对意见来看待 GraphQL 可以替代 Rest API,通过了解、学习 GraphQL,最终觉得 GraphQL 似乎还蛮有意思来着。

62210

GraphQL 初体验,Node.js 构建 GraphQL API 指南

但是,与任何框架或语言一样,GraphQL 也需要权衡取舍。在本文中,我们将探讨使用 GraphQL 作为 API 查询语言的利弊,以及如何开始构建实现。...使用 GraphQL,你无需进行多个 API 调用(例如 GET /user/:id 和 GET /user/:id/addresses ),而是进行一次 API 调用并将查询提交到单个端点: ` query...定义一个 GraphQL Schema 有各种编程语言的 GraphQL 服务器实现,但在你开始之前,你需要识别你的业务域中的对象,就像任何 API 一样。...就像 REST API 可能会使用 JSON 模式一样,GraphQL 使用 SDL 或 Schema 定义语言来定义它的模式,这是一种描述 GraphQL API 可用的所有对象和字段的幂等方式。...我们还需要定义一个类型,这是我们 GraphQL API 的入口点。

8.3K40

为 Vue 配置 GraphQL API

接前文为 Django 配备 GraphQL API,Django 提供 GraphQL 接口服务之后,我们需要让前端来消费这些接口数据,以 Vue 为例,看一看前端如何访问后端 GraphQL API...除此之外会让你选择是否生成代码,是否配置相关的 API,如下图所示: ? 这里只选择生成样例代码即可,其他都选否。生成样例代码的好处是我们不需要关心配置信息,集中精力放在业务逻辑即可。...到这里,我们已经实现了前端通过 GraphQL API 获取后端数据的过程。 其实,Vue Apollo 还有很多功能,比如上传文件。...可能遇到的问题 使用 Django API 最常见的问题就是跨域(CORS)问题,前端的错误提示可能是这样的: Access to XMLHttpRequest at 'url’' from origin...今后做接口开发,能用 GraphQL 的,就不用 REST API

1.2K20

Graphql实践】使用 Apollo(iOS) 访问 Github 的 Graphql API

如果你也对 Graphql 感兴趣,不妨先从 Github 的 Graphql API 来切手实践。...中文版,可以直接看 http://graphql.cn/ 制作访问 Github API 的 Token Github 中有多个 Token 的概念,你需要的是在 https://github.com/...curl -H "Authorization: bearer 7b7cc672235587292be65d11d8ae729b14a0d162" https://api.github.com/graphql...以可视化方式查看 Github API 想象下,Graphql 把数据当做一个具体的图来处理,那这个图真的画出来是什么样呢?本来想自己用 Web 画下效果的,但是竟然发现网上已经有了相关的工具。...-name '*.graphql')" --schema=schema.json --output API.swift 【未验证】如果考虑 Apollo 自定义Header或者自定义 HTTPS 证书校验

1.4K00

Rust 不适合开发 Web API

用于构建 CLI、管理并发性、使用二进制数据和底层解析器的 crates 令人印象深刻,非常棒。...Juniper 是一个用于 Rust 应用程序的 GraphQL 服务。GraphQL 基本上都是由前端应用程序定义查询,而不是后端。...6一些注意事项 首先,本文提到的问题并不针对在通用场景使用 Rust,只针对将 Rust 用于特定目标和生态系统,简单说就是 Web API。...注意事项 2:我试图构建的是重 CRUD(增删改查)的 Web 应用程序 API。...如果你要开发的东西跟我在做的不一样,那我的建议可能就不适合你。如果你需要的是快速执行一两个操作,比如你正在写一个支付网关或语音消息应用程序,那 Rust 可能效果还是不错的。

2.2K10

REST APIGraphQL的比较

REST(Representational State Transfer)和GraphQL是两种常见的API设计风格,各自有其独特的特点和适用场景。...在API设计方面,REST和GraphQL各有其优势和劣势。...下面的图表展示了REST和GraphQL的快速比较。 REST API: 架构风格: 基于资源的状态转移(Representational State Transfer)。...选择取决于需求: REST适用于: 具有简单结构的应用程序。 需要充分利用HTTP缓存的场景。 已有广泛接受的标准和约定。 GraphQL用于: 需要灵活性和精确控制数据的应用程序。...结论: 选择REST还是GraphQL取决于项目的具体需求和复杂性。REST在简单的场景中表现出色,而GraphQL更适用于需要更大灵活性和精确数据控制的复杂应用程序。

13310

API接口架构REST vs GraphQL

但是,GraphQL 正在逐渐追赶着它。 GraphQL 是一种新型的 API 架构,它比 REST 更灵活、更高效,并且具有声明式数据获取等功能。...GraphQL REST 的数据冗余和低效率,促使 Facebook 工程师在 2015 年创建了一种新的 API 设计模式,称为 GraphQL。...与 REST 一样,GraphQL 不是特定的软件,而是 API 设计的规范。 GraphQL 的工作原理 为了了解 GraphQL 的优势,我们将快速概述它的工作原理。...在我们的 GraphQL 模式中,我们将定义Article类型,该类型具有必需的整数id字段和用于title、image和可选字符串字段description,如下所示: type Article {...反过来,这意味着 GraphQL 本质上是自记录的。一旦字段、类型或查询发生更改,基于架构的文档可以自动更新。 没有版本控制的 API 每次应用更改时,API 可能也需要更改。

1.6K30

GraphQL:现代API设计的革新

GraphQL是由Facebook在2012年开发并于2015年开源的一种查询语言,用于构建API。与传统的REST API相比,GraphQL提供了一种更高效、更灵活的数据查询方式。...本文将从GraphQL的基本概念、核心特性、实际使用以及优缺点等方面进行详细介绍。一、GraphQL的基本概念GraphQL是一种用于API的查询语言和运行时,用来满足客户端对数据的精确需求。...2.3 单一端点传统的REST API通常会有多个端点,而GraphQL只需要一个端点,所有的查询、变更和订阅都通过这个端点进行。这简化了API的管理和使用。...强类型系统:Schema定义和类型检查确保了API的可靠性和可预测性。单一端点:简化了API的使用和管理。实时性:通过订阅可以实现实时数据更新,适用于实时应用。...五、总结GraphQL是一种强大且灵活的API设计方式,适用于现代应用的需求。通过其精确的数据查询、强类型系统和单一端点,GraphQL在提升客户端开发体验和优化数据传输方面具有显著优势。

10210

在 Laravel 应用中构建 GraphQL API

GraphQL 是一种 API 查询语言,还是一种根据你为数据定义的类型系统执行查询的服务器端运行时。GraphQL 不依赖于任何指定的数据库或存储引擎,而是由你的代码和数据来作支持的。...graphql.org GraphQL 可以提升 API 调用的灵活性,我们可以像写数据库查询语句一样来请求 API 来获取所需要的数据,这对构建复杂的 API 查询来说非常有用。...添加 GraphQL 的包 使用 composer 安装 graphql-laravel,这个包提供了非常多的功能用于整合 Laravel 和 GraphQL 。 3....创建查询和定义 GraphQL 的类型 GraphQL 中的查询与 Restful API 中的末端路径查询是一样的,查询只是用于获取数据,以及创建、更新、删除操作。...GraphQL 中的 类型 用于定义查询中每个字段的类型定义,类型会帮助我们格式化查询结果中的有格式的字段,例如布尔类型,字符串类型,浮点类型,整数类型等等,以及我们的自定义类型。

3.4K20

在以太坊上构建 GraphQL API

构建在 The Graph 之上 本文中,我们将研究这样一个协议:The Graph[15],以及如何使用存储在以太坊区块链中的数据来构建和部署自己的 GraphQL API。...Graph 是一个索引协议,用于在像以太坊区块链或IPFS[16]这样的网络上进行查询。任何人都可以建立和发布开放的 API,称为 subgraph —— 让数据访问变得容易。...subgraph 定义了你希望通过 GraphQL API 提供的数据、数据源和数据访问模式。开发者可以选择直接使用别人已经部署[17]的 subgraph,或者自己定义并部署 subgraph。...开发者可以通过将他们的 subgraph 部署到托管服务或网络中来创建开放的 API,根据其 API 的使用量来收费。...定义实体 通过 The Graph,在 schema.graphql 中定义实体类型,Graph Node 将生成顶层字段,用于查询该实体类型的单个实例和集合。

1.7K90

为什么GraphQLAPI的未来

我们还将了解那些大公司为什么用 GraphQL 去构建API,以及为什么它是 API 的未来。...使用 REST API,通常会看到许多带有 v1 或 v2 的 API。这些在 GraphQL 中并不需要,因为你可以通过添加或删除类型来改进 API。 在GraphQL中,你所需要做的就是写新代码。...API,后来将其命名为 GraphQL。...GraphQL 使得开发 API 变得容易并保持一致 很多人认为 GraphQL 非常复杂,因为它涉及模式和单个端点。但是你一旦开始用它开发 API,会发现它比你想象的要容易得多。...起初,我认为 GraphQL 是一个炒作,仅仅是创建 API 的另一种方式。但是当我开始研究它时,发现 GraphQL 具有为现代应用程序创建 API 所需的基本功能,因为它非常适合现今的技术栈。

1.6K30

防止你的GraphQL API被恶意查询

原英文: https://blog.apollographql.com/securing-your-graphql-api-from-malicious-queries-16130a324a6b Max...在这篇文章中,他描述了他们是如何在攻击中保护GraphQL API。 使用GraphQL,你可以随时查询想要的内容。 这对于使用API来说是惊人的,但也具有复杂的安全隐患。 ...例如,在Spectrum的GraphQL API中,我们有这样的关系: type Thread {   messages(first: Int, after: String): [Message] }...如果我们只通过查询白名单,已经严重限制了他们的选择,并且破坏了拥有GraphQL API的重要性。 那些限制是我们无法使用的,所以我们得重新设计。...(The GitHub GraphQL API also uses Query Cost Analysis) 实施查询成本分析 在npm上有几个包来实现查询成本分析。

1.8K10

扫码

添加站长 进交流群

领取专属 10元无门槛券

手把手带您无忧上云

扫码加入开发者社群

相关资讯

热门标签

活动推荐

    运营活动

    活动名称
    广告关闭
    领券