2016-06-23 7 views
1

私は現在、複数のマイクロサービスUIをウェブポータルに統合しています。私は中央の領域のiframeにロードされるマイクロサービスへのリンクを持つナビゲーションサイドバーを持っています。マイクロサービスのiframeの代わりにUIの構成

私は(...などのフレームオプションヘッダ、ウィンドウのサイズ変更、とセキュリティ)をIFRAMEの問題の多くを持って

あなたはIFRAMEへのより良い代替について知っていますか?

+0

http://particular.net/blog/secret-of-better-ui-composition –

+0

https://dejanglozic.com/2014/10/20/micro-services-and-page-composition-problem/ –

答えて

1

マイクロサービスでREST APIを利用できる場合は、iframeではなく埋め込みJavaScriptコードを使用できます。

<div id="embed_id"></div> 
 
<script type="text/javascript"> 
 
    
 
(function(){ 
 
    var embededJavascriptElement = document.createElement("script"); 
 
    embededJavascriptElement.type = "text/javascript"; 
 
    embededJavascriptElement.charset= "utf-8"; 
 
    embededJavascriptElement.id = "embed_script"; 
 
    embededJavascriptElement.src = "<path to your script>"; 
 
    (document.getElementsByTagName("head")[0] || document.getElementsByTagName("body") [0]).appendChild(embededJavascriptElement); 
 
})(); 
 
</script>

上記のスクリプトあなたのDOMに別のスクリプトタグを挿入します:あなたの埋め込みコードは次のようになります。このスクリプトは解釈され、id = "embed_id"の要素を検索し、埋め込まれたコードをそのdivにレンダリングします(この動作を実装する必要があります)。

1

あなたは既にspring-cloudとZuulであなたの質問にタグを付けました。私はこれがまさにブラウザのサンドボックスを避けることができ、あなたのサービス上のCORSヘッダーを管理することができるこの方法を引き起こす方法であることをお勧めします。 start.spring.ioを使用し、要件としてZuulを含めてルールを定義してください。私はあなたが静的ルートから始めることをお勧めします。そしてZuulに親しみ、自信を持っていれば、サービスレジストリとEureka、consulまたはetcdのような発見を埋め込みます。

+0

あなたは@danielをspring-cloudとzuulのために正しければ、彼らはsandboxとCORSの問題を解決します。複数のマイクロサービスのiframe(ifader、sidebar、footer)の代わりにiframeの代わりになるものは何ですか? – IKane

+0

私には、あなたが達成しようとしていることはまだはっきりしていません。柔軟に表示したいウィジェットのライブラリがありますか? iGoogleのようなものがありましたか?または、さまざまな小規模サービスからの入力を1ページにまとめようとしていますか?クライアント側とサーバー側を組み合わせたいと思っていますか?クライアント側では、角度を調べることをお勧めします。そしてサーバサイドのために、例えばすべてのコンテンツを取得し、完全にレンダリングされたhtmlページを返すエンジンとしてのThymeleaf –

+0

要するに、複数のuiマイクロサービスがヘッダ、ナビゲーションメニュー、フッターなどの共通部分を共有したいのですが... – IKane

関連する問題