M2.4
任务描述
多事的 bLue 发现,有的时候可能选手的信息更新了,但你的缓存还没更新,导致返回了旧数据。这让他很迷惑,于是他让你搞一个主动清除缓存的功能。
任务要求
你需要添加一个新的路由 POST /clearCache
,接收 json
或 x-www-form-urlencoded
格式的请求体(两种都要能处理)。请求参数中会包含要清除的缓存类型和 handle 列表。
当收到请求后,你需要将请求中指定的 handle 的缓存清除。如果 handles 字段不存在,则清空所有此类型缓存。
当清除缓存并再次访问数据获取接口时,你的程序应该会重新爬取数据并缓存。
请求数据结构
typescript
{
cacheType: 'userInfo' | 'userRatings';
handles?: string[];
}
响应格式
请求的 cacheType
合法
状态码:200。
响应内容类型:JSON。
响应体的数据结构定义为:
typescript
{
message: 'ok';
}
请求参数有误(参数不符合请求体的数据结构定义)
状态码:400。
响应内容类型:JSON。
响应体的数据结构定义为:
typescript
{
message: 'invalid request';
}
请求示例
示例 1
请求 URL(POST):
txt
http://127.0.0.1:2333/clearCache
部分请求头:
http
Content-Type: application/x-www-form-urlencoded
请求体:
txt
cacheType=userInfo&handles%5B0%5D=jiangly&handles%5B1%5D=zxw
状态码:200。
响应体:
json
{
"message": "ok"
}
TIP
对于 x-www-form-urlencoded
格式的请求体,你可以用下面任一方式来传入数组参数,大部分 Web 框架都支持解析数组:
handles=jiangly&handles=zxw
handles[]=jiangly&handles[]=zxw
handles[0]=jiangly&handles[1]=zxw
示例 2
请求 URL(POST):
txt
http://127.0.0.1:2333/clearCache
部分请求头:
http
Content-Type: application/json
请求体:
json
{
"cacheType": "userRatings"
}
状态码:200。
响应体:
json
{
"message": "ok"
}
TIP
这个例子表示清除所有的 userRatings
缓存
示例 3
请求 URL(POST):
txt
http://127.0.0.1:2333/clearCache
部分请求头:
http
Content-Type: application/json
请求体:
json
{
"cacheType": "worldTreeData",
"name": "bLue"
}
状态码:400。
响应体:
json
{
"message": "invalid request"
}
建议完成用时
0.5 天。
总结回顾检查点
- 你知道哪些常见的请求体内容类型?