请求与响应
🌐 Requests and Responses
Page summary:Koa 的上下文(
ctx)在每个 Strapi 端点中携带请求信息、状态和响应数据。本文档详细说明了ctx.request、ctx.state和ctx.response,以及用于在任何地方访问上下文的辅助工具。
Strapi 后端服务器基于 Koa。当你通过 REST API 发送请求时,一个上下文对象(ctx)会传递给 Strapi 后端的每个元素(例如,policies、controllers、services)。
ctx 包含 3 个主要对象:
ctx.request了解关于发起 API 请求的客户端发送的请求的信息,ctx.state了解有关请求在 Strapi 后端状态的信息,- 以及
ctx.response获取有关服务器将返回的响应的信息。
Tip
请求的上下文也可以通过代码中的任何位置使用 strapi.requestContext 函数 访问。
🌐 The request's context can also be accessed from anywhere in the code with the strapi.requestContext function.
Info
除了以下文档中描述的概念和参数外,你可能还会在 Koa request documentation、 Koa Router documentation 和 Koa response documentation中找到额外的信息。

ctx.request
ctx.request 对象包含以下参数:
🌐 The ctx.request object contains the following parameters:
| 参数 | 描述 | 类型 |
|---|---|---|
ctx.request.body | 正文的解析版本。 | Object |
ctx.request.files | 随请求发送的文件。 | Array |
ctx.request.headers | 随请求发送的头信息。 | Object |
ctx.request.host | URL 的主机部分,包括端口。 | String |
ctx.request.hostname | URL 的主机部分,不包括端口。 | String |
ctx.request.href | 请求资源的完整 URL,包括协议、域名、端口(如果指定)、路径和查询参数。 | String |
ctx.request.ip | 发送请求的人的IP。 | String |
ctx.request.ips | 当 X-Forwarded-For 存在并且 app.proxy 启用时,将返回一个 IP 数组,按从上游到下游的顺序排列。 例如,如果值为 "client, proxy1, proxy2",你将收到 ["client", "proxy1", "proxy2"] 数组。 | Array |
ctx.request.method | 请求方法(例如,GET、POST)。 | String |
ctx.request.origin | 第一个 / 之前的 URL 部分。 | String |
ctx.request.params | 在URL中发送的参数。 例如,如果内部URL是 /restaurants/:id,在实际请求中替换 :id 的任何内容都可以通过 ctx.request.params.id 访问。 | Object |
ctx.request.path | 请求资源的路径,不包括查询参数。 | String |
ctx.request.protocol |