当前位置:   article > 正文

为什么调用webservice接口只有 string arg0_快速开发平台中关于支持第三方接口开发的指导

webservice 接口方法参数 应该是string 还是 对象

说明: 本示例中的代码和截图可能和您现在手中的版本不同,但操作思路一样。
以下例子要自己写代码,是写死的那种代码类型,请根据自己实际业务编写代码只是作为参考,不能直接调用

背景介绍

表单或者列表部分数据是通过第三方接口(RESTfull风格、Web Service)获取数据,通过配置和编写代码平台的输入、输出参数的中间转换适配。达到第三方接口的数据兼容。转换成平台识别的数据,给下拉、单选、多选、自定义对话框、关联数据等提供数据来源

操作步骤

以下例子要自己写代码,并且是写死的代码,请根据自己实际业务编写代码只是作为参考,不能直接调用哦。
以下例子都以该接口http://192.168.3.230:15100/ibps/platform/v3/service/demo/query
为例了【post类型接口】,帮助更多的技术人员更快上手。

412e7fc511979934dcf59c65ae830799.png

1.服务配置管理

在服务管理配置,例如下图:

12894ce544b3d5aa9f86a30d4aad0f86.png

2. 数据集

在数据配置,选择服务配置管理,例如下图:

2af2788de2cbb1224721c67186d621ff.png

3. 数据模版

在数据模版配置过程

1)接口数据参数处理

2bb3e7cc31b49d8974cbd489ee11b685.png

示例中【输入参数数据处理】:csscript.defaultResfulInput(params) params参数必须是这个参数

`params`是个Map对象,包含以下内容:  `query` 查询数据  `page` 分页数据

输出参数数据处理】csscript.defaultResfulOutput(data) data参数必须是这个参数

`data`是个JSONString,需要根据实际数据进行解析

2)查询字段配置

根据实际情况配置,例如:ibps平台,是数据库表的字段,name_,最后输出格式Q^name_^SL所以标识(name) 填写name_,也是上节输入参数(接收字段)一致

fd301b40a5c89311f62cefaa63f0d1e7.png

3)显示字段配置

根据实际情况配置,一般都是输出的结果集包含,例如:name(区分大小写,必须跟结果集一致)

f9c02908c71ebabfc0fa464d0b8653f7.png

4)过滤条件

该功能暂不支持

5)返回字段

根据实际情况配置,参考【显示字段配置】

76b3d9ae441cc19024e361fb3404eec6.png

6)排序字段

根据实际情况配置,参考【查询字段配置】

d8d432bec26a645e67e8035e2d0b117f.png

7)最终预览效果

62f38d1cfafd47ee198da1f49a78d009.png

4、表单控件效果

具体参考[数据模版-表单控件]

1) 单选和多选、下拉配置步骤和效果

1—)数据模版配置-值来源

b766b6502d411f08f309b0ac3e818209.png

2-)表单配置选择值来源

79878cf4b87821e924d7fea3c6b424d1.png

配置字段

0b839eb2f3a959a16bb55a34487b027f.png

最终效果

45bf0da316f09e2d17ea1e60e6dd5e14.png

2)关联数据控件配置步骤和使用效果

类似【单选和多选、下拉】配置

a646e195744e9e42c3049ee4181bb86a.png

3)自定义对话框配置步骤和使用效果

类似【单选和多选、下拉】配置,只是类型配置成对话框

ba1f94db1b3153cdd48edc0e976b705d.png

4) 文本框获取值配置步骤和效果( 暂不支持)

脚本编写

以下例子也是一样要自己写代码,是写死的代码,请根据自己实际业务编写代码只是作为参考,不能直接调用

1、输入参数数据处理脚本编写
参考示例:

/**     * 输入参数数据处理脚本     * @param params     * @return     */    @SuppressWarnings("unchecked")    public Map defaultResfulInput(Map params) {        ///获取查询数据【固定参数】        Map querys = (Map) params.get("query");        Map page = (Map) params.get("page");         Map map = new HashMap();         Map header = new HashMap();         // 设置请求头,**目前写死token**,实际根据获取外部的token         header.put("X-Authorization-access_token", "9b4f99b0012e11ea842692c3dee51b7e");         map.put("header",header);         //构建查询        JSONArray parameters = new JSONArray();        for(Map.Entry entry : querys.entrySet()){            JSONObject param = new JSONObject();            param.accumulate("key", "Q^"+entry.getKey()+"^SL").accumulate("value",entry.getValue());            parameters.add(param);        }         JSONObject body = new JSONObject();         body.accumulate("parameters",parameters);
8b1b04a6a7233d0430ef4a1881b98e3e.png

根据接口输入参数,需要返回实际的参数

输入(接受)参数params是个Map对象,包含以下【固定参数】:query 查询数据page 分页数据

返回值是个Map(Map类型) Map的key包含以下【固定参数】(这个需要分析你们接口请求类型,是post、get的方法,输入参数(body,query))bodyType form、json等[如果是post类型建议传入]body json字符串query 查询的键值对header 请求头

2、 输出参数数据处理脚本编写

参考示例:

  public List>defaultResfulOutput(String  data ) {            List> result = new ArrayList>();        JSONObject  json = JSONObject.fromObject(data);        JSONObject dataJson =JsonUtil.getJSONobject(json, "data");        JSONArray dataResult = JsonUtil.getJSONArray(dataJson, "dataResult");        JSONObject pageResult  = JsonUtil.getJSONobject(dataJson, "pageResult");        //数据处理        if(JsonUtil.isNotEmpty(dataResult)) {            for (Object obj : dataResult) {                Map map = new HashMap();                JSONObject  dataResultJson = (JSONObject) obj;                for (Iterator> iter = dataResultJson.keys(); iter.hasNext();) {                    String key = (String) iter.next();                    map.put(key, JsonUtil.getString(dataResultJson, key));                }                result.add(map);            }        }        //分页处理        if(JsonUtil.isNotEmpty(pageResult)) {            Integer pageNo = JsonUtil.getInt(pageResult, "pageNo");            int limit = JsonUtil.getInt(pageResult, "limit");                int totalCount = JsonUtil.getInt(pageResult, "totalCount");                PageResult page = new PageResult(pageNo,limit,totalCount);            result =new PageList>(result,page);        }        return result;  }
6c56df1e0de9b2fbc9d58c8b7526270f.png

根据提供接口的返回结果,返回list(如果包含分页数据则返回PageList)

-输入参数:data是个JSON的String,需要根据实际数据进行解析

-返回值是个List类型 ,返回列表数据,如果包含分页数据则返回PageList

流辰信息非常欢迎更多小伙伴们畅所欲言,有想了解更多平台技术类型、技术特性的小伙伴们可以私信我们或者是发邮件到我们的头条官网邮箱上。帮助我们做得更好。

流辰信息头条官方邮箱:lcxxtoutiao@bpmhome.cn

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/你好赵伟/article/detail/827748
推荐阅读
相关标签
  

闽ICP备14008679号