Apiman 1.5.1.Final 已发布,主要引入了一个重要的新功能:在失败的策略返回给用户之前修改策略的能力。这意味着诸如 CORS 之类的策略现在不管请求是否成功,都可以添加其 headers 。
当策略失败(例如达到速率限制)时,之前会导致立即终止,跳过所有其他策略。该版本改进了处理方式,以允许策略去修改其他策略发出的故障。
要实现这一点,只需要覆盖 IPolicy 中的默认方法 processFailure :
default void processFailure(PolicyFailure failure, IPolicyContext context, Object config, IPolicyFailureChain chain) { ... }
如果你正在使用 AbstractMappedPolicy ,那么应该覆盖 doProcessFailure :
protected void doProcessFailure(PolicyFailure failure, IPolicyContext context, C config, IPolicyFailureChain chain) { ... }
示例:
@Override protected void doProcessFailure(PolicyFailure failure, IPolicyContext context, CorsConfigBean config, IPolicyFailureChain chain) { CaseInsensitiveStringMultiMap corsHeaders = getResponseHeaders(context); if(corsHeaders != EMPTY_MAP) { failure.getHeaders().putAll(corsHeaders.toMap()); } chain.doFailure(failure); }
更多细节可查阅:
APIMAN 提供 API 管理的方法技术,结合一个 API 设计/配置层以及快速的运行时。
主要特性:
- 完全异步
- 丰富的管理层
- 容易嵌入
- API 管理
下载地址:
转自 https://www.oschina.net/news/98967/apiman-151-final-released