加载中...

| 类别 | 科技名词 |
| 年份 | 2015 年 |
| 领域 | 信息技术 |
GraphQL是由Facebook于2015年开源的API查询语言及其服务端运行时规范。它以强类型的Schema描述数据模型,允许客户端在单个请求中精确声明所需字段,服务端则返回结构与查询一致的结果。GraphQL旨在解决传统接口中数据获取不足(under-fetching)与冗余获取(over-fetching)的问题。[1]
GraphQL服务的核心是类型系统(Schema),它定义对象类型、字段及其关系,并区分三类根操作:查询(Query)用于读取,变更(Mutation)用于写入,订阅(Subscription)用于实时推送。客户端提交的查询文档经服务端解析、校验后,由解析器(Resolver)逐字段求值,解析器负责从数据库、微服务或其他数据源获取对应数据。所有请求通常通过单一端点以POST方式传输,与REST的多端点风格形成对比。
GraphQL的优势在于按需取数、强类型契约与自描述能力,客户端可通过内省(Introspection)发现Schema。其代价包括:服务端查询复杂度难以预估,易受深层嵌套或高扇出查询拖累,需引入查询深度限制、复杂度分析与持久化查询等防护;HTTP层缓存也不如REST直接,通常依赖客户端规范化缓存。
GraphQL广泛用于聚合多个后端数据源的场景,如移动端与Web端共享数据层、内容聚合平台、面向前端的BFF(Backend for Frontend)层。Apollo、Relay等客户端框架及多种服务端实现构成了成熟的生态。

| 类别 | 科技名词 |
| 年份 | 2015 年 |
| 领域 | 信息技术 |
登录 后参与讨论
暂无讨论,来发表第一条评论吧