皇上,还记得我吗?我就是1999年那个Linux伊甸园啊-----24小时滚动更新开源资讯,全年无休!

开源 API 管理 Apiman 1.5.1.Final 发布,改进策略

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