快速入门
本章介绍Open API的定义、使用场景、特点等入门知识。
什么是Open API
Open API是eSight提供的基于REST(Representational State Transfer)标准的开放接口。第三方开发者能使用Open API接口授权访问eSight开放的资源,例如:安全管理、网元接入管理、告警管理等。
Open API的使用场景
随着互联网发展的多元化,更多的技术人员投入到网络应用的开发上,及网络开发门槛降低化,让更多的技术人员可以更容易的发展多家互联网可使用的API(Application Programming Interface,应用编程接口),更多的企业网站开发了API加大了技术人员在这方面投入的精力,未来几年将是API飞速发展的几年,让更多企业网站内容更丰富,与访问者更加互动。
Open API如其名,是一种开放式的认证方式,通过非对称加密技术完成用户的认证,其返回相应的OpenID后,再实现资源的获取,实现不同平台、企业、实体之间的数据共享机制。
Open API是服务型网站常见的一种应用,网站的服务商将自己的网站服务封装成一系列API开放出去,供第三方开发者使用,这种行为就叫做开放网站的API,所开放的API就被称作Open API(开放API)。 Open API的出现一方面是信息联合的需要,另一方面是来自利益驱动。
提供Open API调用方式目前已经流行于各大互联网公司,这些公司都提供一套供第三方开发者调用的接口,通过此接口认证后,即可调用其数据单元内的海量资源。数据是有限的,创意是无限的,用海量的数据来完成无限的创意。
Open API的特点
- 提供标准的集成方案,有利于第三方系统快速集成。
- 接口需要授权使用,访问安全,只支持HTTPS访问。
- 采用JSON(JavaScript Object Notation)数据格式进行数据交互,格式简单,易于读写,相比XML占用的网络流量较小。
组网约束
网管对接1个北向第三方系统,上报性能、资源和告警信息时,为了保证数据传输正常不丢失,用户需要单独规划10Mbit/s带宽给北向数据上报,如果要对接10个北向第三方系统,则需要单独规划100Mbit/s带宽给北向数据上报。
什么是REST
REST(Representational State Transfer)是一种针对网络应用的设计和开发方式,可以降低开发的复杂性,提高系统的可伸缩性。
REST以资源为核心,资源由URI(Uniform Resource Identifier)唯一标识,例如/rest/openapi/netype。
REST采用4种标准操作访问资源:POST、GET、PUT、DELETE。
- POST通常表示创建资源。
- GET通常表示查询资源的信息。
- PUT通常表示更新资源的信息。
- DELETE通常表示删除资源。
eSight的各种对外服务以URI的形式向用户提供,用户通过URI来获取eSight的资源,进而获取平台相应的服务,以实现用户的需求。
什么是JSON
JSON是一种轻量级的数据格式。
JSON有两种结构:
- 对象:以{}括起来的内容,形如{key1: value1, key2: value2, ...}。可以通过Object.key形式访问数据。
- 数组:以[]括起来的内容,形如[element1, element2, ...]。可以通过Object[index]形式访问数据,index从0开始。
可见,相对于XML,JSON字符串更简短,更节省网络流量。
下面的示例代码展示如何访问JSON字符串的数据。
<script type="text/javascript"> var resultInfo = {"data":{"total":7,"key_2":2,"key_1":5}, "code":0, "description":"Success to get alarmcount." }; //Access the value of key_1. var key_1 = resultInfo.data.key_1; </script>
什么是HTTP
超文本传输协议(英文:HyperText Transfer Protocol,缩写:HTTP)是互联网上应用最为广泛的一种网络协议。
设计HTTP最初的目的是为了提供一种发布和接收HTML页面的方法。
通过HTTP或者HTTPS协议请求的资源由统一资源标识符(Uniform Resource Identifiers,URI)来标识。
HTTPS(Hypertext Transfer Protocol over Secure Socket Layer),是以安全为目标的HTTP通道,简单讲是HTTP的安全版。HTTPS的安全基础是SSL,因此传输数据通过SSL加密,以确保安全性。
HTTP请求信息(Request Message)
发出的请求信息包括以下几个:
- 请求行。例如GET /images/logo.gif HTTP/1.1,表示从/images目录下请求logo.gif这个文件。
- 请求头。例如Accept-Language: en。
- 空行。
- 其他消息体。
HTTP请求方法
HTTP/1.1协议中共定义了八种方法(也叫“动作”)来以不同方式操作指定的资源:
- OPTIONS:这个方法可使服务器传回该资源所支持的所有HTTP请求方法。用'*'来代替资源名称,向Web服务器发送OPTIONS请求,可以测试服务器功能是否正常运作。
- HEAD:与GET方法一样,都是向服务器发出指定资源的请求。只不过服务器将不传回资源的本文部份。它的好处在于,使用这个方法可以在不必传输全部内容的情况下,就可以获取其中“关于该资源的信息”(元信息或称元数据)。
- GET:向指定的资源发出“显示”请求。使用GET方法应该只用在读取数据,而不应当被用于产生“副作用”的操作中,例如在Web Application中。
- POST:向指定资源提交数据,请求服务器进行处理(例如提交表单或者上传文件)。数据被包含在请求本文中。这个请求可能会创建新的资源或修改现有资源,或二者皆有。
- PUT:向指定资源位置上传其最新内容。
- DELETE:请求服务器删除Request-URI所标识的资源。
- TRACE:回显服务器收到的请求,主要用于测试或诊断。
- CONNECT:HTTP/1.1协议中预留给能够将连接改为管道方式的代理服务器。通常用于SSL加密服务器的链接(经由非加密的HTTP代理服务器)。
方法名称是区分大小写的。当某个请求所针对的资源不支持对应的请求方法的时候,服务器应当返回状态码405(Method Not Allowed),当服务器不认识或者不支持对应的请求方法的时候,应当返回状态码501(Not Implemented)。
HTTP状态码
所有HTTP响应的第一行都是状态行,依次是当前HTTP版本号,3位数字组成的状态代码,以及描述状态的短语,彼此由空格分隔。
状态代码的第一个数字代表当前响应的类型:
- 1xx消息——请求已被服务器接收,继续处理
- 2xx成功——请求已成功被服务器接收、理解、并接受
- 3xx重定向——需要后续操作才能完成这一请求
- 4xx请求错误——请求含有词法错误或者无法被执行
- 5xx服务器错误——服务器在处理某个正确请求时发生错误
HTTP请求样例
下面是一个HTTP客户端与服务器之间会话的例子,运行于www.google.com,端口80。
客户端请求:
GET / HTTP/1.1 Host:www.google.com
(第一行指定方法、资源路径、协议版本;第二行是在1.1版本必带的一个header,作用为指定主机。)
服务器应答:
HTTP/1.1 200 OK Content-Length: 3059 Server: GWS/2.0 Date: Sat, 11 Jan 2003 02:44:04 GMT Content-Type: text/html Cache-control: private Set-Cookie: PREF=ID=73d4aef52e57bae9:TM=1042253044:LM=1042253044:S=SMCc_HRPCQiqy X9j; expires=Sun, 17-Jan-2038 19:14:07 GMT; path=/; domain=.google.com Connection: keep-alive