CodeRoadMap
首页路线题库资源库文章社区
CodeRoadMap

程序员的学习成长路线图。内容免费开放,登录后可同步路线图与课时进度。

由 程序员柏风 独立维护 · 关于作者

学习

  • 路线图
  • 课程
  • 面试题
  • 文章
  • 我

更多

  • 资源
  • 社区
  • 关于作者
  • 内容说明

© 2026 CodeRoadMap

津ICP备2026012044号-1·津公网安备12011002026155号·coderoadmap@126.com
GraphQL 入门/课时/GraphQL 是什么
RawBlame
课时目录12 节

GraphQL 入门

  1. 01GraphQL 是什么
  2. 02Schema 与类型
  3. 03Query 与字段选择
  4. 04Mutation
  5. 05Resolver 模型
  6. 06Spring for GraphQL
  7. 07N+1 与 DataLoader
  8. 08Apollo Client
  9. 09GraphQL vs REST 选型
  10. 10GraphiQL 与 introspection
  11. 11安全与限流
  12. 12综合练习

GraphQL 是什么

与 REST 对比、单端点、强类型 Schema;本站为何用 REST。

25 分钟

GraphQL 是什么

GraphQL 是一种 API 查询语言与运行时规范:客户端用 单一 HTTP 端点 描述所需数据结构,服务端按 Schema 返回 JSON。它与 REST 互补,而非默认替代。

学习目标

  • 理解 GraphQL 与 REST 的核心差异
  • 知道单端点、强类型 Schema、按需取字段三个特征
  • 明确 CodeRoadMap 主 API 仍是 REST(/tracks),GraphQL 为扩展阅读

核心内容

与 REST 对照

REST(本站)GraphQL
端点多个 URL,如 /tracks、/tracks/{slug}/lessons通常一个 /graphql
数据形状服务端固定 DTO客户端选字段
文档OpenAPI / 约定Schema SDL + 内省
缓存HTTP 缓存友好需客户端策略(Apollo 等)

本站 platform 调 Spring Boot:

GET /tracks              → 课程列表
GET /tracks/{slug}       → 单课 track 元数据
GET /tracks/{slug}/lessons/{lessonSlug} → 课时 Markdown

这是 spring-boot-essentials 中 @RestController 模式,不是 GraphQL。

GraphQL 请求长什么样

query {
  track(slug: "graphql-essentials") {
    title
    lessons {
      slug
      title
    }
  }
}

一次请求可嵌套取 track 与其 lessons;REST 等价往往需要多次 GET 或冗余字段。

何时值得学 GraphQL

  • 多端(Web / App / 第三方)字段需求差异大
  • BFF 层要聚合多个后端
  • 团队已有 Schema-first 协作流程

CodeRoadMap 课程站点结构稳定、读多写少、SEO 依赖 Next.js RSC——REST 足够且更简单。本 track 帮你读懂业界方案,并在实验环境动手。

练习

  • 用浏览器或 curl 访问本站 /tracks,记录 JSON 顶层字段
  • 画一张对比图:同一「课程+课时列表」用 REST 几次请求 vs GraphQL 一次 query
  • 阅读 后端路线图 中 API 设计节点

小结

GraphQL = 强类型、按需查询的 API 风格;本站生产路径仍是 REST /tracks。 下一课 Schema 与类型系统。

加载本节练习…
下一课 →Schema 与类型