GraphQL是一种跨语言的API查询语言和运行时,核心解决REST中过度获取或获取不足问题,客户端通过结构化查询精准获取所需数据,服务端按需返回匹配JSON。

GraphQL不是JavaScript的专属技术,而是一种用于API的查询语言和运行时,它可以用在任何编程语言中,包括JavaScript环境(如Node.js、React、Vue等)。它解决的核心问题是:让客户端精准获取所需数据,避免RESTful API中常见的过度获取(over-fetching)或获取不足(under-fetching)问题。
GraphQL是一种客户端驱动的数据获取方式
在GraphQL中,客户端发送一个结构化的查询(query),明确声明需要哪些字段、嵌套关系、甚至多个资源——服务端按需组装并返回完全匹配的JSON响应。比如:
{ user(id: "1") { name email posts { title content } } }
这个查询一次拿到用户基本信息及其所有文章标题和内容,不需要多次请求。
立即学习“Java免费学习笔记(深入)”;
关键点:
- 单个端点(通常是
/graphql),统一处理所有数据请求 - 类型系统严格定义数据结构,支持自动补全和校验
- 服务端不决定返回什么,客户端决定
RESTful API是资源导向的设计风格
REST基于HTTP动词(GET/POST/PUT/DELETE)和URL路径操作资源,每个URL代表一个实体或集合,例如:
GET /users/1 → 返回用户信息
GET /users/1/posts → 返回该用户的文章列表
它简单直观,但容易出现两个问题:
标签: vue react javascript java js 前端 node.js json node 编码 编程语言 后端
还木有评论哦,快来抢沙发吧~