开发指南

开发指南(REST)

目的

ICHIP REST接口可以很方便的对能力集成中枢平台的资源进行管理。

本文档描述了能力集成中枢平台ICHIP产品对外提供的所有API(REST)接口,方便开发者查询和二次开发。

使用对象

该文档是能力集成中枢平台ICHIP产品的API(REST)开发指南。

该文档使用对象为:使用能力集成中枢平台ICHIP产品的开发人员。

术语定义

ICHIP:ICHIP是Inspur Capability Hub Integration Platform的简称,中文名称为能力集成中枢平台,是一个全栈式的中枢平台,把企业、政府、物联网、互联网等实时产生数据,利用能力中枢统一集成,拉通数据传输、数据湖、AI能力,提供统一开放、统一展示,满足企业和政府实现一体化的数字化转型。

应用:实现同一用户内的资源隔离,用户的数据源、服务、API、消息等资源都属于某一个应用。

API: 具有功能独立、能被调用的信息单元,一个 API(Application Programming Interface,应用编程接口)是软件(应用)中的一系列特性和规则,这些特性和规则允许其他软件与之交互(与用户界面相对)。API 可被视为提供它的应用与其他软硬件之间的一个简单的合约(接口)。

生产者:生产者为向消息主题(Topic)发布消息的一方,发布消息的最终目的在于将消息内容传递给其他系统,使对方能按照约定处理该消息。

消费者:消费者为从消息主题(Topic)订阅消息的一方,订阅消息的最终目的在于处理消息内容。如日志集成场景中,监控告警平台作为消费者从Topic订阅日志消息,识别出告警日志并发送告警消息/邮件。

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

外部接口: 本软件系统与其他软件系统之间的接口,接口设施可以是中间件。接口描述包括:传输方式、带宽、数据结构、传输频率、传输量、传输协议。

内部接口: 软件系统内部各子系统之间、各部件之间、各模板之间的接口,叫做内部接口。接口描述包括:调用方式、入口信息、出口信息等。

服务编排: 从具体业务应用场景出发,将API排列、聚合,最终配置成满足业务场景需要的业务规则。

开发环境准备

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);