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);即可。

linux 调用rest接口,REST调用相关推荐

  1. android调用web接口,Android调用webservice 接口

    以查询手机号码归属地的Web service为例,它的wsdl为 1 在Android项目中导入??Ksoap2-android jar第三方jar包?? 2 Activity代码 public cl ...

  2. Sentinel结合Fejgn接口,进行调用远程接口的调用和限流

    sentinel 适配了 Feign 组件.如果想使用,除了引入 sentinel-starter 的依赖外还需要 2 个步骤: 1.引入依赖 <!--feign对sentinel的支持--&g ...

  3. ios调用restful接口_Postman调用https异常解决

    Postman为开发者比较常用的api测试工具,功能强大,支持各种restful接口调试,支持文件上传和文件下载. 这里主要根据项目调用https接口出现以下异常做个简要的操作讲解: 调用接口后pos ...

  4. c++调用python接口_Python调用有道智云文本翻译API接口实现“智能”伪原创

    >> 开始伪原创中..\")"],[20,"\n","24:\"OL7j\"|36:131"],[20,&q ...

  5. php如何调用mysql接口_php5 调用api接口

    XXL-HEX v1.2.0,面向对象的 WebAPI 框架 版本1.2.0新特性 1.Client端,新增Javascript版本实现:前端JS可使用提供的Client,直接调用XXL-HEX的加密 ...

  6. jni 调用java接口_JNI 调用 JAVA 接口

    JNI 调用 JAVA 接口 介绍 JNI 是本地语言编程接口.它允许运行在JVM中的Java代码和用C.C++或汇编写的本地代码相互操作. 由于一些加密等情况的需要,需要在 so 层获取一些信息用于 ...

  7. java调用restful接口_Java调用RESTful接口的几种方式

    前端一般通过Ajax来调用,后端调用的方式还是挺多的,比如HttpURLConnection,HttpClient,Spring的RestTemplate 服务端代码如下: 服务端接口请求的URL:h ...

  8. java接口调用_java 接口怎么调用

    一个类实现了某一个接口就可以调用接口中的方法.接口可以理解为一种能力,例如:每种动物都有叫的能力,但是每种动物的叫声都不一样,叫的能力就可以定义为一个接口. 一.创建项目和包 打开Eclipse,依次 ...

  9. cmd 调用webservice接口_C++ 调用 Webservice gSoap 方法

    大体思路是:使用gsoap生成文件,把生成的相关文件均加载到项目中调用 本文以调用天气的webservice为例子,手把手教你. 步骤一 准备gSOAP工具:将gsoap_2.8.100.zip解压, ...

最新文章

  1. transformer工程实现笔记
  2. Android周学习Step By Step(9)--Intent之广播(完)
  3. 多项目同步进行“交叉编译”
  4. Excel制作考勤管理
  5. 数据库多表连接查询详解
  6. helm values使用示例:变量定义及使用
  7. 使用TR1的智能指针
  8. 【多元域乘法】多项式乘法电路原理及MATLAB详解
  9. 【转】事务和锁机制是什么关系? 开启事务就自动加锁了吗?
  10. java多态机制优点_java面向对象多态性有什么好处?能说的简单易懂点,最好有代码实现结果信息,麻烦各位java大神回答一下?...
  11. 工作流软件哪个好?介绍几款知名的工作流软件
  12. 拔掉MacBookPro,用8GB树莓派4工作一天,体验原来是这样的
  13. Fatal signal 11 (SIGSEGV) at 0x00000004 (code=1)
  14. Linux高可用之heartbeat
  15. 常见的云服务器运营商及相关的优惠活动
  16. Android FaceBook登录 分享获取HashKey(密钥散列)的简单方法
  17. java马士兵网络编程_学习笔记-马士兵java - 网络编程
  18. acwing算法基础课 844. 走迷宫
  19. 十万个为什么 —— 古代没有拼音,怎么认字?
  20. 代码整洁之道精华——第十四章 逐步改进

热门文章

  1. linux下安装卸载jdk
  2. ycm添加自定义补全路径
  3. Nginx或Apache禁止某些IP段访问的两种方法
  4. 智能压力测试垫时刻监测我们的健康,使我们的生命得到保障-新导智能
  5. Linux网络性能参数
  6. python画二维数组散点图_基于python二维数组及画图的实例详解
  7. oracle 笔记4(Fundamentals II)
  8. 墨者学院_phpMyAdmin后台文件包含分析溯源
  9. Babel配置中的presets、plugins、各个阶段stage的含义
  10. 绝非奇闻怪谈 中国街头骗术大全