1. 概述

与SOAP相比,REST WebService简化了调用,也降低了技能要求。

REST 近年来已经成为最主要的 Web 服务设计模式。 事实上,REST 对 Web 的影响非常大,由于其使用相当方便,已经普遍地取代了基于 SOAP 和 WSDL 的接口设计。

您可以不用知道REST是什么,按照我们的手册发起HTTP请求即可,只需遵从以下的基本原则

1 REST用URL来描述资源,如人员、部门、协同、公文。

2 使用HTTP协议的GET、POST、PUT和DELETE来描述资源的获取、创建、修改和删除。

请注意,所有的REST服务都必须传递通过验证服务获取的token,以下不再赘述。

1.1. 启用RESTFul web service

协同安装完成以后是不能直接使用RESTFul web service的,需要系统管理员登录系统,在信息集成配置 → REST用户管理模块中添加REST用户并启用该用户即可。

系统管理员创建REST用户后需要对REST用户进行资源授权,REST用户只能访问已经授权的资源。

1.2. 配置开发环境

启动服务,查看RESTFull web service服务的WADL:

http://ip:port/seeyon/rest/application.wadl
例如:http://127.0.0.1:8080/seeyon/rest/application.wadl

1.3. 验证服务

使用创建的REST用户访问RESTFul web service时首先要进行身份验证获取token,所有服务都必须提供合法的令牌ID方可调用。

为保证安全,验证服务必须使用POST方式,用户名和密码使用请求Body以JSON格式发送。

接口调用请求说明

http请求方式:POST
http://ip:port/seeyon/rest/token
原始的HTTP请求如下所示
POST http://127.0.0.1/seeyon/rest/token HTTP/1.1
Host: 127.0.0.1
Accept: application/json
Content-Type: application/json
{"userName":"rest","password":"123456"}
请求实例:
http://IP:port/seeyon/rest/token/{restusername}/{password}

参数说明

参数 是否必须 说明
userName REST用户登录名
password REST用户密码

返回说明

成功返回JSON字符串,失败返回-1。

成功:
{"id": "013a2a1e-a0b0-4f66-b533-da0563f89c6c"}
失败:
{"id": "-1"}

1.3.1. 验证服务增加设置当前登录人员(Since:V6.0)

验证服务服务接口可以绑定设置当前OA登录人员。

接口调用请求说明:

请求示例:
http://ip:port/seeyon/rest/token/{restusername}/{password}?loginName={loginName}
或
http://ip:port/seeyon/rest/token/{restusername}/{password}?memberCode={memberCode}

参数说明

参数 是否必须 说明
userName REST用户登录名
password REST用户密码
loginName OA用户登录名
memberCode OA用户编码,since 7.1

7.1之前loginName为必填;7.1之后loginName与memberCode任选一个参数即可。

返回说明

成功返回JSON字符串,失败返回 :找不到页面

成功:
{"bindingUser":"..."
"id": "013a2a1e-a0b0-4f66-b533-da0563f89c6c"}
失败:
{"id": "-1"}

1.4. 获取Token是否校验绑定IP(Since:V5.6)

新建REST 帐号时,通过是否勾选【获取Token是否校验IP】来设置在获取Token时,是否对当前请求的IP做校验。

参数说明

参数 是否勾选 说明
获取token是否校验绑定IP 勾选 获取token时校验IP,如果与【绑定IP】设置不同,无法获取token
获取token是否校验绑定IP 不勾选 不对请求IP做校验

1.5. 传递Token

除了验证服务,所有的REST调用时必须传递Token,如果不传递Token或传递错误的Token,将返回HttpStatus.SC_UNAUTHORIZED401错误及错误信息。

Token的生命周期为15分钟,如果15分钟无调用,Token将失效,失效以后调用返回401,提示“Invalid token,please authenticate again”。

Token的传递方式有两种:

1 在HTTP请求的header中,使用token属性

GET http://127.0.0.1/seeyon/rest/xxx HTTP/1.1
Host: 127.0.0.1
Accept: application/json
Content-Type: application/json;charset=UTF-8
User-Agent: Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1700.76 Safari/537.36
Cookie: JSESSIONID=5079B8DC8A4BD52E48FBA4DE78C2A43C
token:xxxxxxx

2 在请求参数中传递,如

http://127.0.0.1/seeyon/rest/orgMember/123?token=xxxxxxx

如果您使用的是我们的客户端,调用client.authenticate(userName, password);即可。

results matching ""

    No results matching ""