首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

职男说:WCF Service API 网关

背景

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

接收浏览器请求

调用后台WCF,返回JSON

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

下面我们来看2个

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

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

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

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

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

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

后台服务变更,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 中, 整个开发过程也更加优雅。

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180504G18NPF00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券