目录
1 引言
本文设计并实现一个系统接口框架,使用WebService和Framework类库实现。纯粹抽象的框架没有什么意义,本文框架设计用于Camstar对外系统接口。读者如果只想使用并不关心设计实现,可以直接从第四节开始看。
2 设计
该框架设计目的有以下4点:
(1)轻量级,扩展简单,开发人员只需要编写业务代码。
(2)普遍性,改接口要能和大部分系统对接。
(3)规范性,接口调用方根据指定的服务编码调用特定的业务接口,接口发布方可以通过配置方式管理接口。
(4)安全性,数据传输加密,接口调用需要验证调用者。
2.1 InterFace
对外暴露一个稳定的,不修改的接口。
2.2 Business Service
设计具体的业务服务都有一个唯一的编码,接口调用方可以通过编码调用指定的业务服务。接口发布方也可以通过管理编码的方式,通过配置管理接口服务。
2.3 Object Transaction Data
对内设计Common,对外使用json。接口调用方使用json字符串调用接口,框架获取到json后转化为object。开发人员在编写业务代码的时候再转化成需要的数据对象。接口调用结束返回时又转换成json返回给调用方。保持系统之间使用json传输数据。
3 实现
根据设计实际实现该接口框架,数据加密可以调用第三方加密服务,也可在Json回传数据的过程中自己编写加密算法。本文略过不实现。另外配置文件统一用了web.config。这个也可以添加新的配置文件做更明确的细分。整体代码如下图所示:
3.1 WebService.asmx
该类对外只暴露一个CallInterface方法,通过工厂类创建指定的业务服务,返回抽象业务接口IBusinessService,该方法调用IBusinessService.ExecuteServce()接口调用具体业务服务。代码如下:
using MESBusiness.Interface;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.