跳到主要内容

WebAPI配置说明

业务背景

服务填值控件能力的不断提升,对Restful Adapter (webapi 适配)的业务方法提出了新的要求,首先restful webapi接口参数通过映射到表单字段取值 ;其次restful webapi接口请求的结果可以作为数据源,对服务填值控件自身以及包括子表等被映射的其他控件填值 ;再者必须满足webapi接口入参和出参的多样性要求 。

业务需求

原理

URL

支持按照Restful请求查询字符串Query,路由参数ParameterPath。

HTTP协议消息头,HTTP消息头用来准确描述正在获取的资源、服务器或者客户端的行为,定义了HTTP事务中的具体操作参数。

例如:

Authorization: 用于表示HTTP协议中需要认证资源的认证信息。 UserId: 用户自定义Header, 用于记录当前请求人员用户ID。

Body

HTTP请求和回复报文中的内容(报文体),出现在HTTP POST 请求(request),和其他HTTP方法的回复(response)报文中。Webapi请求接口将复杂类型的输入参数放在HTTP请求报文的Body中。

输入输出参数

设置输入参数

GET接口

HTTP GET 请求的输入参数,参数位置类型有(ParameterPath、Head、Query);

例如: http://api.beisenapp.com/RecruitV2/105772/Applicant/ById/**571347227?**language=1&photo_base64=1&has_Long=1

其中None类型针对于历史数据,URL的原型

http://api.beisenapp.com/RecruitV2/105772/Applicant/ById/`{Id}`?language=`{language}`&photo_base64=`{photo_base64}`&has_Long=`{has_Long}` ,输入参数配置如下:

POST接口

HTTP POST 请求的输入参数,参数类型有(ParameterPath、Head、Query、Body);

例如:

http://localhost:5000/api/Test/TestApi/`{code}`/`{code2}`?query=`{query}`&query2=`{query2}`

其中,Body参数位置的输入参数有param1、param2;UserId 为用户自定义HTTP 请求报文头部。

Body参数位置对于输入参数的设置,取决Webapi POST接口FromBody 类型的入参,本接口对应的入参可以参照Swagger,

http://localhost:5000/swagger。

该POST接口body类型入参名为param, 是一个包含param1,param2的对象,于是我们定义param1和param2参数位置为Body。

设置输出参数

例如: http://api.beisenapp.com/RecruitV2/105772/Applicant/ById/571347227?language=1&photo_base64=1&has_Long=1

该接口返回数据:

{

"ApplicantId ": 571347227, ----------------------> 主表字段ApplicantId 路径当前为空

"CadidateId ": "C00033989", ----------------------> 主表字段CadidateId 路径当前为空

"ApplyJobSummaries": [.. ],

"InterviewSummaries": [.. ],

"EducationExperience ": {

"Description": null,

"Items ": [ --------------> 子表字段Items, 路径EducationExperience

{

" StartTime ": "2013-09-01", --------------> 子表成员 StartTime , 路径为子表当前, 默认空

" EndTime ": "2015-07-01", --------------> 子表成员 EndTime , 路径为子表当前, 默认空

" SchoolName ": "武汉大学", -------------> 子表成员 SchoolName , 路径为子表当前, 默认空

" MajorName ": null, -------------> 子表成员 MajorName , 路径为子表当前, 默认空

"EducationLevel": {

"Value": 2,

" ExtendValue ": "硕士研究生" ----> 子表成员 ExtendValue , 路径为子表EducationLevel

},

"Description": "\r\n资源与环境科学学院测绘地理信息系统硕士研究生",

} ..]

}

}

实现步骤

以HTTP GET 接口

http://api.beisenapp.com/RecruitV2/105772/Applicant/ById/{Id}?language={language}&photo_base64={photo_base64}&has_Long={has_Long}

为例:

1. 添加业务服务

进入后台管理,点击业务集成,添加业务服务,适配器对应"RESTful Adapter",HttpMethod对应"HttpGet",填写URL为"

http://api.beisenapp.com/RecruitV2/105772/Applicant/ById/{Id}?language={language}&photo_base64={photo_base64}&has_Long={has_Long}

",其中ParameterPath、Query类型的参数可以通过{Id}{language}占位,认证Token根据接口需求填写,输入输出参数按上一章节填写。

2. 添加业务方法

按照需求创建应用功能,将输入参数和输出参数要映射和绑定到表单字段设计好。如图所示:

打开高级设计->业务方法,添加业务方法,填写方法名称、显示名称。

输入参数的映射

编辑业务方法与服务映射列表,设置输入参数映射对象,实现了服务输入参数和表单字段的关联关系,被输入参数映射的表单字段将作为服务的入参值,映射方式有以下两种:

Property (表单字段)

Const(常量)

输入参数的绑定如下图所示:

输出参数的映射

借助于服务赋值控件,实现对服务成功调用的结果赋值到与输出参数绑定了的表单字段(包含子表)。

3. 绑定服务填值控件

打开表单设计选择表单赋值控件,选择表单赋值控件的服务接口,设置表单赋值控件显示列,设置触发服务接口调用时输入值字符的长度,保存表单。