我一直在閱讀有關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層上做到這一點?
我有這種感覺,我想念這個例子中的一些重要的東西。任何細節都很有幫助。