2017-06-12 8 views
0

APIを要求するかどうかを判断する必要があるかどうかは、特定のフィルタでフィルタリングする必要がありますか?要求URLまたはルーティングサービスIDに応じてフィルタを適切に処理する方法

常識では、要求URLをスラッシュで分割して、正確なインターフェイスを取得し、これをURLリストのプリセットと比較することです。それ以外の方法はありますか?

答えて

0

serviceIdプロパティをフィルタ内のRequestContextに使用し、フィルタのshouldFilter()メソッドで以下のように確認できます。フィルタがpreのフィルタの場合は、フィルタの値がPreDecorationFilaterの値よりも大きい必要があります。現在、それはあなたが知っておくべき5

@Override 
public int filterOrder() { 
    return 10; 
} 

@Override 
public boolean shouldFilter() { 
    RequestContext ctx = RequestContext.getCurrentContext(); 

    if ((ctx.get("serviceId") != null) && ctx.get("serviceId").equals("service_id_that_you_want_to_handle")) { 
     return true; 
    } 
    return false; 
} 

ことの一つは、あなたがURL自体を指定する代わりに、ユーレカを使用している場合、あなたはRequestContextの代わりserviceIdproxyプロパティを使用する必要があることです。

+0

私は 'proxy'についてはわかりませんが、' serviceId'の代わりに 'url'の' RequestContext.getRouteHost() 'メソッドを使うべきです。 – spencergibb

関連する問題