GraphQL 查询中的别名(alias)在什么场景下必须使用?
GraphQL 查询中的别名(alias)在什么场景下必须使用? 本文先给出可直接复述的结论,再用最小代码说明GraphQL alias 别名 同字段多查询的工作方式、判断依据、项目边界和常见误区。
API 设计 · GraphQL面试题第 1 页,显示第 1–49 题,共找到 49 道完整解析,可继续按分类、标签与关键词缩小范围。
按稳定语义路径排序
GraphQL 查询中的别名(alias)在什么场景下必须使用? 本文先给出可直接复述的结论,再用最小代码说明GraphQL alias 别名 同字段多查询的工作方式、判断依据、项目边界和常见误区。
GraphQL 如何在参数层面做输入校验,与 resolver 内手写校验如何分工? 本文先给出可直接复述的结论,再用最小代码说明GraphQL 参数 校验 输入 validation的工作方式、判断依据、项目边界和常见误区。
GraphQL resolver 中异步错误会如何影响最终响应? 本文先给出可直接复述的结论,再用最小代码说明GraphQL resolver 异步 错误 errors data的工作方式、判断依据、项目边界和常见误区。
GraphQL 如何实现字段级权限控制(如仅本人可见邮箱)? 本文先给出可直接复述的结论,再用最小代码说明GraphQL 字段级 权限 授权的工作方式、判断依据、项目边界和常见误区。
GraphQL 的权限校验应该放在 resolver、服务层还是数据层,如何权衡? 本文先给出可直接复述的结论,再用最小代码说明GraphQL 权限 授权 resolver 层级的工作方式、判断依据、项目边界和常见误区。
GraphQL 请求级批处理(query batching)适合什么场景,会带来什么副作用? 本文先给出可直接复述的结论,再用最小代码说明GraphQL query batching 请求合并的工作方式、判断依据、项目边界和常见误区。
GraphQL 的缓存为什么比 REST 难做,有哪些层面的缓存手段? 本文先给出可直接复述的结论,再用最小代码说明GraphQL 缓存 HTTP CDN 客户端归一化的工作方式、判断依据、项目边界和常见误区。
DataLoader 如何通过批处理解决 GraphQL 的 N+1 问题? 本文先给出可直接复述的结论,再用最小代码说明GraphQL DataLoader 批处理 N+1的工作方式、判断依据、项目边界和常见误区。
在 GraphQL 中使用 DataLoader 时,mutation 修改数据后如何处理缓存一致性? 本文先给出可直接复述的结论,再用最小代码说明GraphQL DataLoader mutation 缓存失效 prime clear的工作方式、判断依据、项目边界和常见误区。
DataLoader 的请求级缓存为什么必须按请求创建实例而不能全局共享? 本文先给出可直接复述的结论,再用最小代码说明GraphQL DataLoader 缓存 请求级 生命周期的工作方式、判断依据、项目边界和常见误区。
DataLoader 的批处理函数对返回结果的顺序和数量有什么硬性要求? 本文先给出可直接复述的结论,再用最小代码说明GraphQL DataLoader batch 返回顺序 key 对齐的工作方式、判断依据、项目边界和常见误区。
GraphQL 中没有显式定义的字段是如何被解析的? 本文先给出可直接复述的结论,再用最小代码说明GraphQL default resolver 默认解析的工作方式、判断依据、项目边界和常见误区。
GraphQL 如何在不破坏现有客户端的前提下废弃字段? 本文先给出可直接复述的结论,再用最小代码说明GraphQL deprecated 字段 演进的工作方式、判断依据、项目边界和常见误区。
GraphQL 内置的 @include 和 @skip 指令如何工作,适合什么场景? 本文先给出可直接复述的结论,再用最小代码说明GraphQL @include @skip 指令 条件字段的工作方式、判断依据、项目边界和常见误区。
GraphQL 中 Enum 适合建模什么,哪些情况应避免使用 Enum? 本文先给出可直接复述的结论,再用最小代码说明GraphQL enum 适用场景 演进的工作方式、判断依据、项目边界和常见误区。
GraphQL 为什么采用部分数据加 errors 数组的错误模型而不是整体失败? 本文先给出可直接复述的结论,再用最小代码说明GraphQL 错误处理 部分数据 errors的工作方式、判断依据、项目边界和常见误区。
GraphQL 查询是如何从文档解析到逐字段执行的? 本文先给出可直接复述的结论,再用最小代码说明GraphQL 查询 执行流程 解析 验证 执行的工作方式、判断依据、项目边界和常见误区。
GraphQL 中实现文件上传有哪些可行方案,各自有什么限制? 本文先给出可直接复述的结论,再用最小代码说明GraphQL 文件上传 multipart 方案的工作方式、判断依据、项目边界和常见误区。
GraphQL 片段(fragment)和行内片段分别解决什么复用问题? 本文先给出可直接复述的结论,再用最小代码说明GraphQL fragment 行内片段 复用的工作方式、判断依据、项目边界和常见误区。
GraphQL 全局对象标识(Global Object Identification)要求 Node 接口解决什么问题? 本文先给出可直接复述的结论,再用最小代码说明GraphQL Node 接口 全局 ID refetch的工作方式、判断依据、项目边界和常见误区。
GraphQL 通过 HTTP 提供服务时 GET 与 POST 的使用边界是什么? 本文先给出可直接复述的结论,再用最小代码说明GraphQL over HTTP GET POST 规范的工作方式、判断依据、项目边界和常见误区。
为什么 GraphQL 的输入参数必须使用 Input 类型而不能直接用 Object 类型? 本文先给出可直接复述的结论,再用最小代码说明GraphQL input type 输入类型 原因的工作方式、判断依据、项目边界和常见误区。
GraphQL 的 Interface 与 Union 类型在语义和使用场景上有什么区别? 本文先给出可直接复述的结论,再用最小代码说明GraphQL interface union 区别的工作方式、判断依据、项目边界和常见误区。
GraphQL 的内省(Introspection)在生产环境是否应该关闭,依据是什么? 本文先给出可直接复述的结论,再用最小代码说明GraphQL introspection 生产环境 安全的工作方式、判断依据、项目边界和常见误区。
如何让 GraphQL Mutation 在网络重试场景下保持幂等? 本文先给出可直接复述的结论,再用最小代码说明GraphQL mutation 幂等 重试 clientMutationId的工作方式、判断依据、项目边界和常见误区。
设计 GraphQL Mutation 的返回 payload 时应遵循哪些实践? 本文先给出可直接复述的结论,再用最小代码说明GraphQL mutation payload 设计 实践的工作方式、判断依据、项目边界和常见误区。
GraphQL 为什么天然容易出现 N+1 查询问题,如何诊断? 本文先给出可直接复述的结论,再用最小代码说明GraphQL N+1 问题 诊断的工作方式、判断依据、项目边界和常见误区。
GraphQL 中非空标记与列表组合(如 [User]、[User!]、[User]!)各自表示什么含义? 本文先给出可直接复述的结论,再用最小代码说明GraphQL Non-Null 列表 nullability 语义的工作方式、判断依据、项目边界和常见误区。
列表数据频繁增删时 GraphQL 分页如何保证不重复不遗漏? 本文先给出可直接复述的结论,再用最小代码说明GraphQL 分页 数据变动 一致性的工作方式、判断依据、项目边界和常见误区。
GraphQL 游标分页中游标应该如何生成,为什么不能直接暴露数据库主键? 本文先给出可直接复述的结论,再用最小代码说明GraphQL cursor 游标 编码 实现的工作方式、判断依据、项目边界和常见误区。
GraphQL 分页中游标(cursor)分页与 offset 分页各自适合什么场景? 本文先给出可直接复述的结论,再用最小代码说明GraphQL 分页 cursor offset 取舍的工作方式、判断依据、项目边界和常见误区。
GraphQL 持久化查询(persisted queries)解决了哪些生产问题? 本文先给出可直接复述的结论,再用最小代码说明GraphQL persisted queries 持久化查询的工作方式、判断依据、项目边界和常见误区。
GraphQL 查询复杂度(query complexity)如何计算并用于限流或拒绝请求? 本文先给出可直接复述的结论,再用最小代码说明GraphQL 查询复杂度 query complexity 限制的工作方式、判断依据、项目边界和常见误区。
如何防止恶意构造的超深嵌套 GraphQL 查询拖垮服务端? 本文先给出可直接复述的结论,再用最小代码说明GraphQL 查询深度限制 depth limiting的工作方式、判断依据、项目边界和常见误区。
GraphQL 中 Query 与 Mutation 在执行语义上有什么实质区别? 本文先给出可直接复述的结论,再用最小代码说明GraphQL query mutation 区别 串行 并行的工作方式、判断依据、项目边界和常见误区。
Relay Connection 规范中 edges、node、pageInfo 各自承担什么职责? 本文先给出可直接复述的结论,再用最小代码说明GraphQL Relay Connection edges pageInfo的工作方式、判断依据、项目边界和常见误区。
GraphQL resolver 的 context 应该放什么、不应该放什么? 本文先给出可直接复述的结论,再用最小代码说明GraphQL context 设计 用户 数据源的工作方式、判断依据、项目边界和常见误区。
GraphQL resolver 函数的四个参数分别是什么,各自在什么场景使用? 本文先给出可直接复述的结论,再用最小代码说明GraphQL resolver parent args context info 参数的工作方式、判断依据、项目边界和常见误区。
GraphQL 中如何定义和使用自定义标量类型(如 DateTime)? 本文先给出可直接复述的结论,再用最小代码说明GraphQL custom scalar DateTime 序列化的工作方式、判断依据、项目边界和常见误区。
多个 GraphQL 服务合并为统一入口时,schema stitching 与 federation 思路有何不同? 本文先给出可直接复述的结论,再用最小代码说明GraphQL schema stitching federation 网关的工作方式、判断依据、项目边界和常见误区。
GraphQL schema 演进中哪些变更属于破坏性变更? 本文先给出可直接复述的结论,再用最小代码说明GraphQL breaking change schema 演进的工作方式、判断依据、项目边界和常见误区。
GraphQL 开发中 schema-first 与 code-first 两种模式如何取舍? 本文先给出可直接复述的结论,再用最小代码说明GraphQL schema-first code-first 取舍的工作方式、判断依据、项目边界和常见误区。
GraphQL 的 schema 与类型系统由哪些核心部分构成? 本文先给出可直接复述的结论,再用最小代码说明GraphQL schema 类型系统 SDL的工作方式、判断依据、项目边界和常见误区。
GraphQL Subscription 的执行模型是什么,与普通查询有何本质不同? 本文先给出可直接复述的结论,再用最小代码说明GraphQL subscription 订阅 执行模型的工作方式、判断依据、项目边界和常见误区。
GraphQL Subscription 在多实例部署时如何保证事件正确分发? 本文先给出可直接复述的结论,再用最小代码说明GraphQL subscription 水平扩展 发布订阅的工作方式、判断依据、项目边界和常见误区。
GraphQL Subscription 常用哪些传输协议,各自有什么限制? 本文先给出可直接复述的结论,再用最小代码说明GraphQL subscription WebSocket SSE 传输的工作方式、判断依据、项目边界和常见误区。
实时性需求下 GraphQL Subscription 与轮询查询如何选择? 本文先给出可直接复述的结论,再用最小代码说明GraphQL subscription 轮询 实时 取舍的工作方式、判断依据、项目边界和常见误区。
GraphQL 返回 Union 或 Interface 类型时服务端如何确定具体类型? 本文先给出可直接复述的结论,再用最小代码说明GraphQL resolveType union interface 解析的工作方式、判断依据、项目边界和常见误区。
GraphQL 查询中变量(variables)解决了什么问题,为什么不能直接拼接字符串? 本文先给出可直接复述的结论,再用最小代码说明GraphQL variables 变量 注入 安全的工作方式、判断依据、项目边界和常见误区。