ListFreightInfo freight

时间:2021-12-31 03:13:06

在我们通例的业务措置惩罚惩罚中,一般内部措置惩罚惩罚的接口大都都是以数据库相关的,基于混合式开发的Winform开发框架,虽然在客户端挪用的时候,一般选择也是基于Web API的挪用,不过后端我们可能不只仅是针对我们业务数据库的措置惩罚惩罚,也可以能是挪用其他外部接口,如物流、提供商接口等接口,本随笔就是主要介绍基于混合式开发框架如何整合外部API接口的挪用。

1、混合式框架的布局介绍

我们知道,混合式的框架是可以在客户端访谒Web API处事、WCF处事或者直接连接数据库几种方法的综合,而尤以Web API为最广泛的应用,它的整个框架的布局如下所示。

ListFreightInfo freight

ListFreightInfo freight

在客户端中,通过统一的工厂类CallerFactory<T>对相应的接口进行访谒,这里主要就是处事器端Web API处事接口的措置惩罚惩罚,以及客户端对Web API接口的封装,两部分通过一些基类进行简化措置惩罚惩罚,可以极大提高开发效率。

对付外部第三方的Web API接口,我们也可以在本身的Web API接口中进行包装,使得客户端通过相应的接口进行交互即可,不需要理会内部还是外部的接口,从而实现透明的接口挪用。

 2、RFID外部接口的整合措置惩罚惩罚

在一个客户的应用案例中,需要整合处事商RFID接口实现相应的数据交互,本篇随笔也是基于这个案例进行整个过程的分析和操纵,使得我们了解在混合框架中如何整合第三方Web API接口为我们内部框架所用。

一般来说,Web API接口,需要明确API的URL、数据提交方法(POST/GET)、提交参数、返回调集,以及一些特殊的数据等,而一般接口的操纵,也是需要一个访谒令牌的,这些都是Web API接口挪用的关键。

ListFreightInfo freight

ListFreightInfo freight

ListFreightInfo freight

根基上我们有了上面Web API的1/2/3法式的信息就可以进行接口编程了,这些是Web API开发非常重要的信息。

我们需要出格主要到,法式1中的信息

ListFreightInfo freight

这里面的token是特别的接口信息,是需要设置Http Request请求的头部信息里面的,是用户身份的重要信息,所以我们一般需要先通过指定的授权接口获取这个token信息。

在这个外部的接口调集里面,我们找到统一登录验证的接口界说如下所示。

ListFreightInfo freight

ListFreightInfo freight

通过上面的分析,我们首先需要需要措置惩罚惩罚好登录验证接口,然后通过接口通报令牌token给其他接口进行数据措置惩罚惩罚的。

结合我们的混合框架布局,这里我以测试项目TestProject项目为例进行介绍,我们调解WHC.TestProject.Caller项目的对应类,如下所示。

ListFreightInfo freight

此中Facade层接口类IRFIDService.cs代码如下所示。

/// <summary> /// RFID处事外部接口 /// </summary> [ServiceContract] public interface IRFIDService { /// <summary> /// 终端用户统一登录验证 /// </summary> [OperationContract] CheckinResult CheckIn(string username, string password, string device_uuid, string device_type, string last_app_version, string app_id); /// <summary> /// 获取标签发货通知单批量 /// </summary> [OperationContract] TagOrderAsnResult TagOrderAsn(int brand_id, string factcode, string start_time, string end_time, PagerInfo pagerInfo, string token); /// <summary> /// 标签订单出库物流信息回写 /// </summary> [OperationContract] CommonResult TagOutPost(string docno_asn, string factcode, string dest_factcode, List<FreightInfo> freight, string token); }

这里面的接口界说,我们是按照输入参数、输出参数进行界说的,此外token是特别增加的令牌参数,用于请求头部写入信息的。

这个接口的界说其实和我们通例的Web API接口界说没有太多的差别,如下是一个内部客户信息接口界说。