hualinux 编程概念 3.10:什么是API接口(新手必看!)

目录

一、前言

二、什么是接口?

2.1 什么是API

2.2 REST、RESTful、RESTful API

2.1.1 rest

2.1.2 RESTful

2.1.3 RESTful API

2.3 web API好处


前一章节讲什么是前后端,以及前后端是通过API交互的,但没有具体解释什么是API,这章节进行简单的解说。

一、前言

我们经常听到开发一句话“你给我一个接口让我调用一下呗”,老板问能不能用自己的程序获取一些数据,开发往往也说"可以呀,让对方给一个接口和权限,让我们调用就行了"

那这里的接口到底指的是什么呢?

二、什么是接口?

2.1 什么是API

上面开发所说的接口并不是我们编程的接口Interface,这里的接口我们往往把它叫做API(Application Programming Interface,应用程序编程接口)

 

接口一般分2大类:

1. 非web的应用程序方面,一般是系统方面或CS模式的应用,叫一般叫系统API。你加入相关别人指定的“文件”,往往是链接库或SDK,你就可以使用这个库所提供的类、函数或方法去“操作”对方

2. web方面的,叫web  API。一般就给我一个URL和一串授权的数字(我们给它起个名字叫token,令牌),你有了这个URL和一串授权数字,你就可以按别人公司的API文档使用别人指定的方法及参数之类了。

例子:dnspod API就是一个例子,地址为:https://www.dnspod.cn/docs/index.html

它就是使用POST应用对dnspod的页面操作的,返回的是json格式的数据。它可以使用linux的curl命令,-X POST指定是POST方式提交。为什么要使用 POST,因为它有授权的tonken令牌,不能明码,被你看到,不安全呀。

说了一大堆,简单来说API就是别人给你一个“文件”或要带上“授权字符串”URL地址,这样你就可以实现对其系统进行操作。

因为我们是电商运维,主要是网站,所以我们更多关注的是web API,上面的web API还没有说明清楚的话。

web api简单理解就是:对网站操作进行封装以url的形式供别人调用,并返回可网络传输的通用格式数据。

1.这个URL一般是有一定格式的,不同公司有不同的格式,一般api会有使用说明文档,教你如何使用。如阿里云api、dnspod api、微信小程序api

2. 请求这个URL往往需要在头部发授权验证码的,一般是使用token验证。

3.api返回的一般是通用格式可在网络中传输数据(json或xml)

  一般选择json,xml比较旧现在已经很少人在使用了。一般不会直接返回HTML因为HTML已经是可以直接呈现了。

一般请求是通过网络传输的,所以要求能在网络中传输;通用才能被绝大部分程序解析,这样就与编程语言无关,就可以转化为自己所使用语言的数据类型进行存储。

粗暴的理解就是:如果一个URL返回的不是HTML,而是机器能直接解析的数据,这个URL就可以看成是一个Web API

注:

Web API顾名思义,是一个可以使用HTTP协议访问的API。

这是一个概念,而不是技术。我们可以使用不同的技术来构建Web API,如Java、.net等。

Web API一般基于HTTP/REST来实现,什么都不需要定义,参数(输入的数据)可以是JSON, XML或者简单文本,响应(输出数据)一般是JSON或XML。它不提供服务调用标准和服务发现标准。可以按你服务的特点来写一些简单的使用说明给使用者。 主要是把web api一般理解成http/REST来实现就行了。

 

2.2 REST、RESTful、RESTful API

上面讲到REST随便提一下REST、RESTful、RESTful API三种概念

2.1.1 rest

REST(Representational State Transfer) 并不是一种具体的实现技术,而是一种软件架构风格,主要有以下特点:

  • 从资源的角度来考察整个网络,每个资源有唯一标识
  • 使用通用的连接器接口操作资源
  • 对资源的操作不会改变资源标识
  • 连接协议具有无状态性
  • 能够使用 Cache 机制来增进性能

REST 风格几乎是为 HTTP 协议量身定做的,在 HTTP 协议中用 URI 来标识唯一的资源,用 GETPUTPOSTDELETE 等动词来操作资源,HTTP 协议是无状态协议,可以通过 Cache 来提高性能。

2.1.2 RESTful

REST 指的是一组架构约束条件和原则。满足这些约束条件和原则的应用程序或设计就是 RESTful

有兴趣的可以了解一下阮一峰的《理解RESTful架构

1.为什么会出现restful

在Restful之前的操作:
http://127.0.0.1/user/query/1   GET 根据用户id查询用户数据
http://127.0.0.1/user/save      POST 新增用户
http://127.0.0.1/user/update    PUT 修改用户信息
http://127.0.0.1/user/delete    GET/POST 删除用户信息


RESTful用法:
get http://127.0.0.1/user/<id>     GET 根据用户id查询用户数据
post http://127.0.0.1/user      POST 新增用户pu
put http://127.0.0.1/user/<id>      PUT 修改用户信息
delete http://127.0.0.1/user/<id>      DELETE 删除用户信息

PS:其中id为id具体号,比如001

之前的操作是没有问题的,大神认为是有问题的,有什么问题呢?你每次请求的接口或者地址,都在做描述,例如查询的时候用了query,新增的时候用了save,其实完全没有这个必要,我使用了get请求,就是查询.使用post请求,就是新增的请求,我的意图很明显,完全没有必要做描述,这就是为什么有了restful.

2. 使用

HTTP 请求在 RESTful Web 服务中的典型应用

资源

GET

PUT

POST

DELETE

一组资源的 URI,比如 

http://www.example.com/resources/

列出 URI 及该资源组中每个资源的详细信息

使用一组给定的资源替换当前整组资源

在本组资源中创建 / 追加一个新资源

删除整组资源

单个资源的 URI,比如

 http://www.example.com/resources/1

获取给定资源的详细信息

替换 / 创建指定的资源,并将其追加到相应的资源组

把指定的资源作为资源组,并在其下创建 / 追加一个新元素,使其隶属于当前资源

删除指定元素

2.1.3 RESTful API

符合REST架构设计的API

RESTful API 是一套互联网应用程序的 API 设计理论。

RESTful API 的返回结果应该符合以下规范

  • GET /collection:返回资源对象的列表(数组)
  • GET /collection/resource:返回单个资源对象
  • POST /collection:返回新生成的资源对象
  • PUT /collection/resource:返回完整的资源对象
  • PATCH /collection/resource:返回完整的资源对象
  • DELETE /collection/resource:返回一个空文档

有兴趣的可以了解一下阮一峰的《RESTful API 设计指南》《RESTful API 最佳实践

简单例子可以看我写的《RESTful API说明及实例

2.3 web API好处

编写API有什么好处呢?由于API就是把Web App的功能全部封装了,所以,通过API操作数据,可以极大地把前端和后端的代码隔离,使得后端代码易于测试,前端代码编写更简单。

此外,如果我们把前端页面看作是一种用于展示的客户端,那么API就是为客户端提供数据、操作数据的接口。这种设计可以获得极高的扩展性。例如,当用户需要在手机上购买商品时,只需要开发针对iOS和Android的两个客户端,通过客户端访问API,就可以完成通过浏览器页面提供的功能,而后端代码基本无需改动。
 

当一个Web应用以API的形式对外提供功能时,整个应用的结构就扩展为:

值得注意的是 RESTful API是一个设计理论,并不是一个框架,是你按这种理论去设计。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值