开发指南

开发指南(REST)

目的

IDaaS REST接口可以很方便的对统一身份管理的资源进行管理。

本文档描述了统一身份管理IDaaS产品对外提供的所有API(REST)接口,方便开发者查询和二次开发。

使用对象

该文档是统一身份管理IDaaS产品的API(REST)开发指南。

该文档使用对象为:使用统一身份管理IDaaS产品的开发人员。

术语定义

IDaaS:IDaaS是Inspur Identity as a Service的简称,中文名称为统一身份管理,是浪潮云的应用身份管理服务,提供集中式的身份管理、授权、认证、访问控制、审计等功能,确保政府和企业用户根据权限访问浪潮云、其他云和本地应用系统,并对用户的异常操作行为进行主动防范。

应用:指所要接入IDaaS的应用。

回调链接:用户通过认证地址校验通过后回调的地址。

资源:用户抽象出来的一切资源,比如数据、API、菜单、按钮等。

操作类型:为资源定义操作(动词形式),例如:read。每一项都是 [资源:操作] 的形式。

REST:Representational State Transfer,简称REST,即表现层状态转化,是Roy Fielding博士在2000年他的博士论文中提出来的一种软件架构风格。它是一种针对网络应用的设计和开发方式,可以降低开发的复杂性,提高系统的可伸缩性。

开发环境准备

JDK安装

JDK是整个Java的核心,包括了JAVA运行环境,JAVA工具和JAVA基础的类库。Apache 的HTTP Client 4.5依赖JDK环境,当前对JDK的版本需求是JDK1.7及JDK1.7以上版本。

首先检查部署环境是否已安装相应版本JDK,若无,则参考《JDK1.8 安装部署手册》进行安装部署。

安装完成后,需要验证正确安装JDK,如果是winodws系统,需打开“命令提示符”,或者在运行窗口,输入“cmd”,打开了DOS窗口,分别输入命令java -version与命令javac –version,如果输出各自的版本信息,则安装成功,否则请按照《JDK1.8安装部署手册》重新安装配置。如果是linux系统,在命令窗口中输入java -version与命令javac –version。

Eclipse安装

请到Eclipse官网下载Eclipse3.6以上版本进行安装,本文以Eclipse Neon.2版本进行说明:

下载后,解压压缩包eclipse-SDK-4.6.2-win32-x86_64.zip,不需要安装,解压文件到桌面,产生eclipse文件夹。

下载HTTP Client 4.5包

首先,登录http://hc.apache.org/downloads.cgi网站,下载二进制包4.5.5,压缩包保存到桌面。

桌面解压httpcomponents-client-4.5.5-bin.tar.gz安装包,不需要安装,如下图所示解压到当前目录.

开发说明

1.除非特殊说明,所有接口都需传 token

2.响应默认包含 "code" "message" "data" "status" ,部分响应示例可能省略

3.如出现请求路径、请求参数与请求示例不一致的情况,以API文档中小标题“URL”内容为准

发送POST请求示例:

        RestTemplate restTemplate = new RestTemplate();
        String url = "xxxx";
        MultiValueMap<String, Object> postParameters = new LinkedMultiValueMap<>();
        postParameters.add("param1", "param1");
        HttpHeaders headers = new HttpHeaders();
        headers.add("Content-Type", "application/x-www-form-urlencoded");
        headers.add("token", "");
        HttpEntity<MultiValueMap<String, Object>> r = new HttpEntity<>(postParameters, headers);
        try{
            //ResponseMessage responseMessage = restTemplate.postForObject(url, r, ResponseMessage.class);
            ResponseEntity<String> responseEntity = restTemplate.postForEntity(url, r,String.class);
            return new TokenResponse();
        }catch (Exception e){
            return null;
        }

发送GET请求示例:

    ResponseEntity<String> res = restTemplate.getForEntity("xxx",String.class);
    String body = res.getBody();
    return body;

发送DELETE请求示例:

   String url = "xxx";
   restTemplate.delete(url);

发送PUT请求示例:

// 请求地址
   String url = "xxx";
   JSONObject postObj = new JSONObject();
   // 发送PUT请求
   restTemplate.put(url, postDTO);