我一直在阅读有关Facade Pattern的内容,并且我试图了解如何实现这一点。这就是我如何理解它的实现方式:
-------------------------------------------------------------
| (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服务器向外界公开Web API端点。该图层将具有以下端点:
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图层上执行此操作吗?
我觉得在这个例子中我错过了一些重要的事情。任何细节都有帮助。
答案 0 :(得分:0)