2015-11-17 51 views
0

我一直在閱讀有關Facade模式的內容,我正試圖瞭解如何實現這一點。這是我如何理解它如何實現:如何設置Web API外觀模式

------------------------------------------------------------- 
|    (Facade layer) API Exposure     | 
------------------------------------------------------------- 
|       DMZ        | 
|    (Auth API)   (Application Web API)  | 
------------------------------------------------------------- 

所以有兩層。所以基本上有兩個Web API端點。一個生活在外部世界無法訪問的DMZ。它包含諸如端點:

internal/User Get/Put/Post/Del 
internal/Order Get/Put/Post/Del 
internal/Product Get/Put/Post/Del 
internal/Address Get/Put/Post/Del 
etc. 

然後還有就是公開Web API端點向外界公開的Web服務器。這層將有這樣的端點:

api/user - POST 

這接受就像一個JSON對象:

User: { 
    username: 'john doe' 
    addresses: [{ 
    street: 'something 1001' 
    }, { 
    straat: 'company 300' 
    }] 
} 

然後在退還api/user端點將兩次調用。一個去internal/User和一個去internal/Address

因此,消費用戶只需進行一次API調用就可以保存包含地址信息的用戶對象。但是Facade層將進行兩個獨立的調用。

我的理解對Web API的Facade模式是否正確?

我的第二個問題是,當消費者嘗試使用API​​時,我應該在哪裏進行身份驗證檢查?我應該在DMZ層還是Facade層上做到這一點?

我有這種感覺,我想念這個例子中的一些重要的東西。任何細節都很有幫助。

回答