マイクロマイクロサービスゲートウェイ---他のサービスを呼び出します

 


まず、書き込みフィルタはZuulFilterを継承し、前記書き換えの実行()メソッドは、情報要求オブジェクトへのアクセス:
CTX = RequestContext.getCurrentContext RequestContextの(); 
HttpServletRequestを要求ctx.getRequest =(); 
文字列servletPath request.getServletPath =(); 
情報は、GETリクエスト・オブジェクト要求の後に得ることができます。
ストリングaccessSys = request.getParameter( "accessSys")。
ストリングparamData = getRequestBody(リクエスト)。

プライベート文字列getRequestBody(HttpServletRequestのリクエスト){ 
試み{
入力ストリームv_inputstream = request.getInputStream()。
ByteArrayOutputStreamたBAO =新しいByteArrayOutputStream();
INT X = 0。
{(!(X = v_inputstream.read())= -1)、一方
baos.write(X)。
}
baos.flush()。
新しいString(baos.toByteArray()、UTF_8)を返します。
}キャッチ(例外e){
logger.error(e.getMessage()、E)。
}
リターン「」。
}

 次のように図2に示すように、設定情報を横断ルーティング経路における経路情報です。

@ConfigurationProperties(接頭辞= "application.myroutes")
パブリッククラスMyRoutesConfig { 

	
	プライベートマップ<文字列、文字列>ルート; 

	パブリックマップ<文字列、文字列> getRoutes(){ 
		戻り経路。
	} 

	公共ボイドsetRoutes(MAP <文字列、文字列>ルート){ 
		this.routesの=ルート。
	} 
}
次のようにコンフィギュレーション・ファイルは、次のとおりです

。#カスタムフィルタのルートは参考:RestFaceFilter.javaの
ファイルアプリケーション:
myroutes:
ルート:{
-サービス: 'パスポートプラットフォーム'、
ProxyServiceの: 'パスポート-exservice'
}
IF(!ルート= NULL){ 
            セットの<string>のkeySet = routes.getRoutes()のkeySet()。
            (文字列str:のkeySet)のために{ 
// logger.info( "ルートキーを取得:{}"、STR)。
                IF(servletPath.startsWith( "/" + STR + "/")){ 
                    restface_forward = routes.getRoutes()(STR)を得ます。
                    ブレーク; 
                } 
            } 
        }

  

 

おすすめ

転載: www.cnblogs.com/otways/p/11411598.html