动手做Get your hands on it
练习跟着课文走 —— 每节课尾都有本课的练习。这一页是全部练习的总库,想集中刷题的时候来。 每个练习都写清了它来自哪一节,卡住了就回去看那一节。Practice follows the lessons — every lesson ends with the exercises for that lesson. This page is the whole library, for when you want to drill in one sitting. Each exercise names the lesson it came from, so you can go back when you stall.
练习Exercises
筛出 148 个练习 · 第 7 / 13 页。Showing 148 · page 7 / 13.照真实 schema.graphql 补全。 三个空分别关系到「入口类型」「枚举」「输入类型」。
Fill this in from the real schema.graphql. The three blanks are the entry type, the enum and the input type.
照 index.js 里 context 的真实结构, 哪个写法能拿到订单数据源?
Going by the real shape of context in index.js, which of these reads the order data source?
Order.shippingInfo 需要知道「是哪个 order 的物流」。 这个 order 的 id 从哪个参数拿?
Order.shippingInfo has to know which order the shipping belongs to. Which argument holds that order's id?
客户端发 { orders(userId:"123") { id shippingInfo { status } } }, 数据源里 user 123 有两个订单。把服务端的动作排序。
The client sends { orders(userId:"123") { id shippingInfo { status } } }, and in the data source user 123 has two orders. Put the server's steps in order.
schema 写的是 orders(userId: ID!): [Order!]!。 user 999 没有任何订单。resolver 该返回什么?
The schema says orders(userId: ID!): [Order!]!. User 999 has no orders at all. What should the resolver return?
客户端调 createOrder(userId: "789", items: [{ productId: "prod-789", quantity: 2 }])。 如果 resolver 把 items 原样交给orderDataSource.createOrder,会怎样?
The client calls createOrder(userId: "789", items: [{ productId: "prod-789", quantity: 2 }]). What happens if the resolver hands items straight to orderDataSource.createOrder?
照 schema 的非空标记,给每个 resolver 填上正确的返回表达式。 想清楚「这个字段能不能是 null」。
Go by the non-null markers in the schema and write the right return expression for each resolver. Decide first whether the field is allowed to be null.
下面哪一条最准确地描述了 Federation 要解决的核心问题?
Which of these describes most accurately the core problem Federation sets out to solve?
下面哪些是这个 assessment 仓库里没有的?(多选)
Which of these are not in this exam repository? (Select all that apply.)
这题是多选。More than one answer is correct.
schema.graphql 里从头到尾没有出现_entities,但 Router 能查它。它从哪来?
_entities appears nowhere in schema.graphql, yet the Router can query it. Where does it come from?
仓库里没有 Router。你想确认自己的 User.orders在 federation 链路里能被正确调用。最直接的办法?
There is no Router in the repository. You want to confirm your User.orders is called correctly along the federation path. What is the most direct way?
type User @key(fields: "id") 最准确的含义是?
What does type User @key(fields: "id") mean, most precisely?