职男说:WCF Service API 网关

Posted 职能IT智慧圈

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了职男说:WCF Service API 网关相关的知识,希望对你有一定的参考价值。

背景

EPO项目每个模块都有一个Web , Web 项目编码核心部分就是Controls,其职责是:

  1.  接收浏览器请求

  2.  调用后台WCF,返回JSON

  3.  鉴权: 识别当前用户,将用户StaffId 传递给WCF 服务


下面我们来看2个

EPO V1 的controls (基于aspx 页面写的)



EPO V2 controls基于asp.net  web api 写的


职男说:WCF Service API 网关


在web 端 我们尽量避免业务逻辑代码,  所以web 端control就成了请求中转;  大家在写后台服务的时候, 如果前端(jquery,vue,angular)需要使用, 就在web 的control 添加一个Action暴露给浏览器调用; 导致以下情况出现

 

  1.  随着采购平台的模块增大, 其web模块也是不断增多

  2.  Web的职责变得仅仅只是请求中转

  3.  方法及参数都是依赖后台服务, 构建的过程大多是从后台拷贝过来

  4.  后台服务变更,web 的 action就要跟着变


解决方案


创建通用 Api  来转发前端请求, 如下:

浏览器及第三方系统通过Api 网关能访问到后台wcf, 不用再部署单独的web站点暴露api:

支持访问控制 (基于Cookies,Token鉴权)

请求WCF 自动带上Staffid (取登录用户)

可配置部分接口拒绝访问(不对外公开的wcf) 

参数支持datatable,dataset

请求可跟踪


在Postman 测试 调用 需求模块的服务如下:

   

UI就可以像访问web control 一样访问后台wcf service

 

在SPA项目中, 往往一个SPA 对应到后台多个service , 那么API网关使用后,开发重心就可以放在 ui 及Service  中, 整个开发过程也更加优雅。


以上是关于职男说:WCF Service API 网关的主要内容,如果未能解决你的问题,请参考以下文章

web service, wcf, wcf rest, web api之间的区别

WCF Web API WCF REST 和 Web Service 的区别

Difference between WCF and Web API and WCF REST and Web Service

Web Service vs WCF vs WCF REST vs Web API

Web Service vs WCF vs WCF REST vs Web API

Web Service ,WCF以及Web API的对比