WebAPI

<< Click to Display Table of Contents >>

当前位置:  部署与集成 

WebAPI

复制链接

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。

1.接口环境配置

1)在永洪产品的安装目录中找到:Yonghong/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同步的文件管理系统。即:点击首页,进入【管理系统 > 系统设置 > 权限管理系统配置】,选择文件权限管理系统并点击应用按钮,如下图所示:

Integration_Permission

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

Integration_Postman

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

Integration_ExLog

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

Integration_Token

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

Integration_Action

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

Integration_XmlData

Integration_Response

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)粘贴后的效果如下。

Chinese_garbled