首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何设置Web API外观模式

如何设置Web API外观模式
EN

Stack Overflow用户
提问于 2015-11-18 05:07:35
回答 1查看 3.7K关注 0票数 0

我一直在阅读关于Facade模式的文章,我正在尝试了解如何实现它。下面是我对如何实现它的理解:

代码语言:javascript
复制
-------------------------------------------------------------
|               (Facade layer) API Exposure                 |
-------------------------------------------------------------
|                           DMZ                             |
|              (Auth API)         (Application Web API)     |
-------------------------------------------------------------

所以有两层。所以基本上有两个Web API端点。居住在DMZ中的人,外部世界无法访问它。它包含如下端点:

代码语言:javascript
复制
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服务器。该层将具有如下端点:

代码语言:javascript
复制
api/user - POST

它接受JSON对象,如下所示:

代码语言:javascript
复制
User: {
  username: 'john doe'
  addresses: [{
     street: 'something 1001'
  }, {
     straat: 'company 300'
  }]
}

然后,api/user端点将反过来进行两个调用。一个去internal/User,一个去internal/Address

因此,消费用户只需进行一次API调用,即可保存包含地址信息的user对象。但是Facade层将进行两个单独的调用。

我对Web的外观模式的理解正确吗?

我的第二个问题是,当消费者尝试使用API时,我应该在哪里进行身份验证检查?我应该在DMZ层还是外观层上这样做?

我有种感觉,在这个例子中我遗漏了一些重要的东西。任何细节都是有帮助的。

EN

回答 1

Stack Overflow用户

发布于 2015-11-18 06:03:00

我认为你是对的。它与网关模式相同。

http://microservices.io/patterns/apigateway.html

在网关中,您可以添加授权验证,然后只调用允许的服务。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33767007

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档