2016-10-31 105 views
1

按照我們當前的體系結構,我們有Datapower作爲網守,用於根據JSON模式驗證每個傳入請求(使用JSON)。Datapower上的JSON模式驗證

我們有很多寧靜的服務,它們都有Datapower本身的相應JSON模式。但是,每當服務定義發生變化時,都必須更改相應的模式。這會導致受影響的模式的Datapower部署。

現在我們計劃讓Datapower爲每個傳入請求調用一個寧靜的服務,它將返回JSON模式以便調用該服務,並且該模式將與服務代碼本身一起出現,而不會出現在Datapower上。這樣,即使服務定義中有任何更改,我們也可以在架構中進行更改並部署服務。這將爲我們節省不必要的Datapower部署。

有沒有更好的方法來驗證架構?我想要的是不要爲每個模式更改都部署Datapower。

僅供參考,我們頻繁地獲取模式更改。

回答

0

更好的方法是有一些基於訂閱變更的推送系統。您可以將模式存儲在etcd,redis,postgres或其他任何具有數據更改通知通道的系統中,以便您可以在驗證服務中更新模式,而無需在每次請求時執行此模式。如果您的驗證服務使用驗證程序編譯模式來編寫代碼(ajv - 我是作者,is-my-json-valid,jsen),那麼如果您只是在更改時才執行此操作,性能將會更好。

1

保持當前的解決方案,就像爲每個請求提供新的JSON模式一樣,將會影響性能。相反,當您在後端系統中部署架構時,請使用RMI(REST管理界面)或SOMA調用來上傳新架構,或者僅添加一個XML防火牆,您在其中添加將json數據寫入目錄中的文件的GWS腳本(需要7.5或更高)。

請注意,您必須通過調用清除緩存!