精确
提出你的需求,你就能得到你想要的。向你的 API 发送 GraphQL 查询,即可精确获取你请求的数据 —— 既不会过度获取数据,也不会获取数据不足。可预测的响应确保应用高效运行。
GraphQL 是一个开源的 API 查询语言和服务器端运行时环境。它提供强类型模式来定义数据之间的关系,从而使 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"
}
}Press CtrlSpace to open the completions menu, ⌘CtrlEnter to run the query.
大规模提供高性能用户体验。全球领先的应用都使用 GraphQL 来创建更快、响应更灵敏的数字体验。
在确保数据使用情况完全透明的同时,保护你的 API。GraphQL 使你能够监控、保护和优化 API 使用,同时确保合规性。
GraphQL 灵活且解耦的架构,让你的团队能够更快地交付产品。GraphQL 支持前端和后端团队独立高效地协作。
GraphQL 完全是为前端工程师设计的,符合他们的思维方式、视图结构和数据使用方式。
大多数产品开发都涉及视图层级的创建和操作。GraphQL 查询反映了 UI 结构,确保能够以自然的方式请求与响应结构相匹配的数据。
每个 GraphQL 服务都定义了一个类型系统,使工具能够在执行查询之前对其进行语法验证,从而确保响应的可预测性。
GraphQL 服务会发布其客户端可以使用的功能。与传统的固定端点不同,客户端可以控制接收的数据,仅请求字段级别的所需数据。
GraphQL API 可以自我描述,允许工具和客户端查询模式以获取可用类型和功能。它为构建通用工具和客户端软件库提供了一个强大的平台。
向你的 API 发送 GraphQL 查询,即可精确获取你请求的数据 —— 既不会过度获取数据,也不会获取数据不足。可预测的响应确保应用高效运行。
GraphQL 能够无缝地处理数据之间的关系,从而避免多次 API 调用。传统的 REST API 需要从多个 URL 加载数据,而 GraphQL API 只需一次请求即可获取应用所需的所有数据。这非常适合处理复杂查询和优化网络性能。
无需离开编辑器即可准确了解你可以请求的内容。在发送查询之前突出显示潜在问题,并利用增强的代码智能。GraphQL 让构建强大的工具变得轻而易举。其中许多工具,例如 GraphiQL,都是开源的,并且由 GraphQL 社区构建。
GraphQL API 的架构围绕类型和字段展开,而非端点。这确保了数据的一致性、自文档化以及清晰可控的错误信息。应用可以利用类型来避免编写手动解析代码。
添加新字段和类型而不影响现有查询。弃用过时的字段,同时保持 API 的简洁性和面向未来的特性。通过使用单一的演进版本,GraphQL API 使应用能够持续访问新功能,并鼓励编写更易于维护的服务器代码。
GraphQL 与存储无关——它可以将数据库、REST API 和第三方服务集成到一个统一的数据层中。你可以编写利用现有数据的 GraphQL API,并使用多种语言提供的 GraphQL 引擎进行编码。
GraphQL 片段允许你在每个组件附近定义其数据需求,并通过单个查询满足这些需求。
Click onHover over the components to see their GraphQL fragments.
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 如何帮助您构建更快、更现代化的解决方案。