API概念
定义
API(应用程序编程接口)是一些预定义的功能,或指软件系统不同组件之间的协议。
也可以将其理解为在两个应用程序之间或使用一组规则和协议的组件或计算机硬件之间进行通信的机制。
目的
使应用程序和开发人员能够访问基于某些软件或硬件的一组例程,而不必访问源代码或了解内部工作机制的细节。
使用
该API是在以下地方编写和使用的:
基于Web的应用程序
电脑作业系统
数据库系统
电脑硬件
软件库
上面是API的非常广泛的概念,包括硬件和软件,但是我们经常说的API实际上是非常狭窄的Web服务或Web API。
网络服务
Web Service是独立于平台,低耦合,自包含,基于Web的可编程应用程序,可以使用开放XML(标准通用标记语言的子集)标准对其进行描述,发布,发现和协调,并配置这些应用程序 用于开发分布式交互式操作应用程序。 ----百度百科
Web Service是API的实现,用于通过网络(通常是http或https)在两个应用程序之间进行通信。
因此,Web Service和Web API是两个概念:
Web服务是包装在HTTP中的API
Web服务需要网络,但是API不需要网络
所有Web服务都是API,但并非所有API都是Web服务
在此处插入图片说明
有三种方法可以实现Web服务:
RPC远程过程调用体系结构(远程过程调用)【面向方法】
XML-RPC
JSON-RPC
面向SOA服务的体系结构[面向消息]
SOAP协议
REST表示层状态传输架构(Representational state transfer)[面向资源]
大多数时候,我们最经常接触REST风格的Web服务
休息
REST是一种架构风格,一种设计风格以及Web服务的概念,而不是协议或标准。
简要了解传统的API设计和REST API设计:
非REST设计:
http:// localhost:8080 / admin / getUser(查询用户)
http:// localhost:8080 / admin / addUser(添加用户)
http:// localhost:8080 / admin / updateUser(更新用户)
http:// localhost:8080 / admin / deleteUser(删除用户)
结论:对不同的操作使用不同的URL(主要是动词)。
REST架构:
GET http:// localhost:8080 / admin / user(查询用户)
POST http:// localhost:8080 / admin / user(新用户)
PUT http:// localhost:8080 / admin / user(更新用户)
删除http:// localhost:8080 / admin / user(删除用户)
结论:URL仅指定资源,并使用HTTP方法动词执行不同的操作。 使用HTTP STATUS / CODE定义操作结果。
RESTFul
我们经常谈论的RESTFul API是什么?
实际上,RESTful是常见的REST应用程序,它是遵循REST风格的Web服务,而REST风格的Web Service是ROA(面向资源的体系结构)。 并具有以下特点:
每个URI代表一个资源;
在客户端和服务器之间,会传递此类资源的某个表示层;
客户端使用四个HTTP动词(get,post,put,delete)对服务器端资源进行操作,以实现“表示层状态转换”。
标准RESTFul仅具有这四个操作GET,POST,PUT和DELETE。 这四个动作对应于资源的添加,删除,修改和检查。
我们经常接触到的HEAD和PATCH实际上不是标准的RESTFul,可以理解为开发人员同意RESTful作为标准的一种简单方法。
因此,我们当前正在联系的应用程序不是完全按照RESTful样式开发的,而是基于RESTful样式开发的。
在此处插入图片说明
幂等:对同一REST接口的多次访问将导致相同的资源状态。
安全性:对该REST接口的访问不会更改服务器端资源的状态。
URI
客服支持
微信咨询
售后