永洪社区

标题: 部署与集成——WebAPI [打印本页]

作者: Lydia    时间: 2024-11-28 10:58
标题: 部署与集成——WebAPI
本帖最后由 Lydia 于 2024-11-28 11:24 编辑

WebAPI是基于servlet实现,API所有的方法的调用需要构建xml格式的请求内容,post到这个servlet,并且返回xml格式的字符串作为响应。想要基于API做集成开发需要构建和解析xml格式字符串,并通过http协议进行通讯。

➢注:
可以通过配置属性更改WebAPI请求和返回信息的格式,通过webapi.params.json,配置webapi传递参数的格式,true为json,false为xml,默认为xml;通过webapi.result.json配置webapi返回结果的格式,true为json,false为xml,默认为xml。

请求参数xml转json格式说明
在接口的请求参数存在以下示例:
<params>
<param name="id" type="int">1</param>
</params>
在进行json格式转换时请参考如下格式进行转换:
"params": {
  "param": {
     "name": "id",
     "type": "int",
     "content": "1"
   }
}

1.接口环境配置
1)在永洪产品的安装目录中找到:vividime/tomcat/webapps/bi/WEB-INF/web.xml中添加以下代码:
  <servlet>
  <servlet-name>YonghongWebApi</servlet-name>
  <servlet-class>g5.sv.httpapi.YonghongWebApi</servlet-class>
  </servlet>
  <servlet-mapping>
  <servlet-name>YonghongWebApi</servlet-name>
  <url-pattern>/api</url-pattern>
  </servlet-mapping>

2)启动产品,将权限设置为文件权限管理系统或支持LDAP同步的文件管理系统。即:点击首页,进入【管理系统 > 系统设置 > 权限管理系统配置】,选择文件权限管理系统并点击应用按钮,如下图所示:



3)下载浏览器插件Postman并安装,安装成功后,Postman界面如下图所示:



4) 在METHOD中选择post,输入url:http://ip:port/bi/api?adminv=admin&passv=xxxx&action=login,如下图所示:



点击Send,在返回值得到登录的token值:



5)选择post,输入url:http://ip:port/bi/api?action=xxxx&token=xxxx,根据需要输入WebAPI需要输入的参数key和value:



根据需要选择Body类型,一般情况下如图选择并输入参数:xmlData以及xmlData的值,点击send,即会在界面上有反馈的结果:





2.接口注意事项
•每个接口会在请求参数栏标明请求参数是否必填。若请求参数为无,则不需要填写请求参数;若请求参数为必填,则需要填写请求参数;
•每个接口的参数描述栏会详细标明请求参数中的参数是否为必填项。若为必填项,请填写对应的内容;若为选填项,则可填可不填,但是仍然需要写出对应标签。
➢例如:
添加用户中参数“alias”为选填项,当我们创建的用户没有昵称时,我们仍然需要写上alias的标签,即:<alias></alias>,如下所示:
<?xml version="1.0" encoding="UTF-8"?>
<info>
<user>
        <name>user1</name>
        <pass></pass>
        <email>test@qq.com</email>
                   <alias></alias>
        <parent></parent>
        <roles></roles>
</user>
</info>
•中文乱码问题:调用接口时,由于系统或代码对编码的影响,可能会对中文内容产生影响造成乱码,编码应设置为UTF-8来避免中文乱码问题。如果开发侧没有办法解决,可以通过在永洪侧tomcat配置filter, 强行设置请求的编码为UTF-8。

参考方法:
1)打开安装目录/tomcat/webapps/bi/WEB-INF/web.xml,复制下面的内容。
<filter>
   <filter-name>characterEncodingFilter</filter-name>
   <filter-class>com.yonghong.api.filter.CharacterEncodingFilter</filter-class>
</filter>
<filter-mapping>
   <filter-name>characterEncodingFilter</filter-name>
   <url-pattern>/*</url-pattern>
</filter-mapping>

2)粘贴后的效果如下。









欢迎光临 永洪社区 (http://club.yonghongtech.com/) Powered by Discuz! X3.4