You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Gravitee:如何改写响应状态码(将202替换为200)

解决响应状态码从202改写为200的问题

问题分析

你之前的Groovy策略未生效,核心原因是操作对象错误:result对象通常用于自定义错误返回或特定流程控制,并非直接修改后端返回的响应状态码。要改写实际返回给客户端的响应,需要直接操作response对象,且必须在**响应流(Response Flow)**中执行策略——只有在后端返回响应后,才能修改其状态码。

正确的Groovy策略代码

将以下代码放在响应流的策略节点中(确保在后端响应返回后、发送给客户端前执行):

if (response.status == 202) {
    // 直接修改响应状态码为200
    response.status = 200
    // 若需要统一响应体,可取消下面的注释(不需要则保留后端原响应体)
    // response.content = '{"message":"ok"}'
    // 确保Content-Type与响应体匹配
    response.headers['Content-Type'] = 'application/json'
}

关键注意事项

  • 策略执行阶段:必须绑定到Response Flow,不能放在Request Flow中——Request Flow是在请求发往后端前执行,此时还未获取到后端的202响应。
  • 避免冲突:检查是否有其他后续策略(如错误处理、响应转换策略)会覆盖状态码,确保此策略在所有可能修改响应的策略之前执行。
  • 保留响应体:如果不需要修改后端返回的响应内容,只需删除response.content这一行,仅修改状态码即可。

内容的提问来源于stack exchange,提问作者user3001150

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.25 03:36:11