面试真题
题目 1:GraphQL vs REST
GraphQL 相比 REST API 的优势
答案:
按需获取字段,减少网络请求 单次请求获取多资源 强类型 schema 客户端决定返回数据 API 演进无需版本控制
题目 2:GraphQL 核心概念
GraphQL 的核心概念有哪些?
答案:
Schema:类型定义 Query:查询 Mutation:变更 Subscription:订阅 Resolver:解析器
题目 3:Query 查询
GraphQL Query 如何使用?
答案:
query{
user(id:"1"){
name
email
posts {
title
}
}
}
题目 4:Mutation 变更
GraphQL Mutation 用于什么场景?
答案:
增删改数据 类似 REST 的 POST/PUT/DELETE 支持批量操作
题目 5:Resolver
Resolver 的作用是什么?
答案:
处理数据获取 连接数据源(数据库、API) 支持异步操作 格式返回数据
题目 6:N+1 问题
GraphQL N+1 问题如何解决?
答案:
DataLoader 批量加载 缓存请求 异步批处理 预加载关联数据
题目 7:Apollo Client
Apollo Client 特点
答案:
状态管理 缓存机制 订阅支持 SSR 支持 开发工具
题目 8:Schema 设计
GraphQL Schema 设计原则
答案:
业务导向 嵌套合理 避免循环依赖 使用接口抽象 命名清晰
题目 9:认证授权
GraphQL 如何处理认证授权?
答案:
Header 传递 Token Context 中验证 指令控制权限 字段级别控制
题目 10:分页实现
GraphQL 如何实现分页?
答案:
偏移分页:first/offset 游标分页:after/before 建议使用游标分页
题目 11:实时订阅
GraphQL Subscription 用途
答案:
实时更新 WebSocket 聊天室 通知推送
题目 12:缓存策略
Apollo Client 缓存机制
答案:
规范化缓存 缓存策略配置 手动缓存更新 缓存续期
题目 13:错误处理
GraphQL 错误如何处理?
答案:
errors 数组 可包含自定义错误码 部分成功场景 错误边界
题目 14:Union vs Interface
Union 和 Interface 的区别
答案:
Interface:抽象类型,有共同字段 Union:联合类型,不需要共同字段 使用场景不同
题目 15:性能优化
GraphQL 性能优化手段
答案:
查询复杂度限制 持久化查询 缓存策略 DataLoader CDN
文章来源:
四季读书网
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至23467321@qq.com举报,一经查实,本站将立刻删除;如已特别标注为本站原创文章的,转载时请以链接形式注明文章出处,谢谢!