精准
请求你所需的,获得正好的向你的 API 发送 GraphQL 查询,并精确获得你请求的数据 —— 不多拿,也不少取。可预测的响应使应用保持高效和高性能。
自 2012 年以来,Facebook 的移动应用一直由 GraphQL 提供支持。GraphQL 规范于 2015 年开源。现在,它已被全球行业领先的公司所采用,并由 GraphQL 基金会支持,该基金会自 2018 年起由非营利组织 Linux 基金会托管。
GraphQL 是用于 API 的开源查询语言和服务器端运行时。它提供了一个强类型模式(Schema)来定义数据之间的关系,使 API 更加灵活且可预测。它不绑定于特定的数据库或存储引擎 —— 它能与您现有的代码和数据配合使用,让 API 的长期演进变得更加容易。
query getCity($city: String) {
cities(name: $city) {
population
weather {
temperature
precipitation
}
}
}type Project {
name: String!
tagline: String
contributors(first: Int, after: ID): [User!]!
}{
project(name: "GraphQL") {
tagline
}
}{
"project": {
"tagline": "A query language for APIs"
}
}按 CtrlSpace 打开补全菜单, ⌘CtrlEnter 运行查询。
大规模提供高性能的用户体验。全球领先的应用使用 GraphQL 来打造更快速、更具响应性的数字体验。
在保持数据消耗完全可见性的同时保护您的 API。GraphQL 允许您监控、保护和优化 API 使用,同时确保合规性。
利用 GraphQL 灵活的解耦架构让您的团队更快速地发布。GraphQL 允许前端和后端团队独立且高效地工作。
GraphQL 坚定地为前端工程师而生,符合他们的思维方式、视图结构以及数据消费模式。
大多数产品开发涉及视图层级的创建和操作。GraphQL 查询镜像了 UI 结构,确保以自然的方式请求与响应结果形状匹配的数据。
每个 GraphQL 服务都定义了一个类型系统,使工具能够在执行前对查询进行语法验证,并确保响应的可预测性。
GraphQL 服务发布其客户端允许使用的功能。由客户端控制其接收的数据,在字段级别仅请求其所需的内容,而不像传统的固定端点。
GraphQL API 可以自我描述,允许工具和客户端查询模式(Schema)以获取可用类型和功能。它作为构建通用工具和客户端软件库的强大平台。
GraphQL 是一个由全球数千名协作开发者和公司塑造的生态系统。从个人贡献者到全职维护者,GraphQL 社区构建库、举办聚会、资助创新并帮助推动技术进步。
向你的 API 发送 GraphQL 查询,并精确获得你请求的数据 —— 不多拿,也不少取。可预测的响应使应用保持高效和高性能。
GraphQL 无缝地遵循数据之间的关系,消除了多次 API 调用。虽然典型的 REST API 需要从多个 URL 加载,但 GraphQL API 只需一次请求即可获取应用所需的全部数据。是复杂查询和优化网络性能的理想选择。
无需离开编辑器即可准确知道可以请求的内容。在发送查询前识别潜在问题,并利用改进的代码智能。GraphQL 让构建强大工具变得简单。其中许多工具(如 GraphiQL)都是开源的且由 GraphQL 社区构建。
GraphQL API 围绕类型和字段构建,而非端点。这确保了数据一致性、自文档化以及清晰、可操作的错误。应用可以使用类型来避免编写手动解析代码。
添加新字段和类型而不影响现有查询。弃用过时的字段,同时保持 API 的整洁和面向未来。通过使用单一的演进版本,GraphQL API 为应用提供了对新功能的持续访问,并鼓励更具可维护性的服务器代码。
GraphQL 与存储无关 —— 将数据库、REST API 和第三方服务集成到一个统一的数据层中。利用多种语言提供的 GraphQL 引擎,编写能够利用您现有数据和代码的 GraphQL API。
GraphQL 片段 (Fragments) 允许您在组件附近定义每个组件的数据需求,并通过单个查询满足它们。
点击悬停在组件上查看它们的 GraphQL 片段。
query GetFriendList {
...FriendList
}
fragment FriendList on Query {
friends {
...FriendListItem
}
}
fragment FriendListItem on Friend {
name
profilePic
mutualFriendsCount
isSubscribed
...FriendInfo
}
fragment FriendInfo on Friend {
username
email
location
}选择与您的项目最相关的用例,了解 GraphQL 如何帮助您构建更快速、现代的解决方案。
GraphQL 作为跨多个服务的统一数据层。通过这种方式,您可以简化 API 管理并减少团队之间的依赖。它支持高效的数据获取,同时保持 API 表面的灵活和可维护性。
GraphQL 由社区驱动,并得到全球数千名开发者和公司的支持。成为塑造 API 开发未来的网络的一员。