当前位置:   article > 正文

【开发基础】新手角度看:什么是API接口?_api新手

api新手


我们常说的接口大致分为两种,一种是程序内部接口,提供给不同文件或类进行调用,另外一种是应用程序接口(API:Application Program Interface),例如前端请求调用后端接口来实现对数据的增删改查。

一、程序内部接口

  • 人类与电脑等信息机器或人类与程序之间的接口称为用户界面。
  • 电脑等信息机器硬件组件间的接口叫硬件接口。
  • 电脑等信息机器软件组件间的接口叫软件接口。

接口泛指实体把自己提供给外界的一种抽象化物(可以为另一实体),用以由内部操作分离出外部沟通方法,使其能被内部修改而不影响外界其他实体与其交互的方式。——接口_360百科

计算机出身的一般都是先学C/C++,再学Java,。。。“面向对象”中一个重要概念就是接口(Interface)还有一个概念:封装,封装的类会提供get与set方法,这其实也可以看作是提供的接口。具体的每个人都会有不同的理解,今天我想整理的思路重点是关于API,应用程序接口。

二、应用程序接口(API:Application Program Interface)

API接口最常见于前后端,API接口大多数是由后端编写,前端开发人员进行请求调用。

我们通过API接口来实现特定的功能,而调用者不需要了解其内部实现细节。也可以把API接口理解为是对特定服务(service)的一种封装,将服务封装起来提供给他人调用,这样不需要重新开发即可实现功能,也可以很好的保护数据的安全。

后端API接口一般采用Java、PHP、C#、Pyhon、C/C++、Ruby、Scala等一种或多种后端语言开发搭建,提供了数据存储、通讯、各类服务等功能。一般使用HTTPS协议进行通讯(部分还在使用HTTP协议),使用JSON格式序列化返回接口结果和数据(部分使用xml格式返回)。
在这里插入图片描述

在开发安卓应用时需要使用到安卓系统提供的API,在进行Windows桌面应用开发时需要用到微软系统提供的API,在进行微信小程序开发时可使用微信开放接口API。这些暂不提。

API接口是项目开发过程中必要的组成部分之一,是客户端应用与服务端应用通信和桥梁。

除此之外,从专业角度来说,API不仅代表着接口本身,还蕴含了服务端的整体系统架构、数据存储、服务端管理、第三方系统的整合等,只是对外看来,表现出来的是API接口。

可以说,API接口直接使用方是客户端应用,地位是客户端与服务端之间的通信桥梁,是信息化的桥梁,所担负的作用是把业务功能通过接口服务形式具体化,为应用编程开发提供技术支持。

另外,不同系统和编程语言之间的数据通讯往往也采用API形式进行数据交接。

三、常见的API形式有哪些?

常见的API有以下几种形式:

1、HTTP/HTTPS类型接口

基于HTTP/HTTPS协议提供的API,这类API常常以“网址”形式提供的,像现在主流的RESTful就属于这类接口。
基于HTTP协议开发的接口现在应用是最为广泛的,这类API使用起来简单明了,因为它是轻量级的、跨平台、跨语言的,但凡是第三方提供的API都会有HTTP版本的接口。
RESTful API也是基于HTTP协议的,只不过RESTful它并不是一种规范,它是一种设计准则,用不同的HTTP动词(GET、POST、DELETE、PUT等)来表达不同的请求。

2、RPC接口

RPC它是指远程过程调用,将一部分代码逻辑放在远程服务器上部署,然后在需要的地方调用即可(调用远程方法就像调用本地方法一样),本质上是Client/Server模式,而且支持多种协议(如:HTTP、TCP、UDP、自定协议)和数据传输方式(如:Json、XML、Binary、Protobuf等)。

3、Web Service 接口

Web Service并不具象地指某种API,我们将以WEB形式提供的服务都称之为Web Service,像RESTful也属于Web Service。不过Web Service接口和HTTP接口存在一些细小区别就是,Web Service接口支持更复杂的对象,而HTTP接口更多的就是传输字符串或者JSON文本。
在这里插入图片描述

  • 对于软件提供商来说,留出API,让别的应用程序来调用,形成生态,软件才能发挥最大的价值,才能更有生命力。(同时别人也看不见代码,不会涉及到商业机密。)
  • 对于应用开发者来说,有了开放的API,就可以直接调用多家公司做好的功能来做自己的应用,不需要所有的事情都自己操刀,节省精力。

四、API接口使用案例

1.纯请求API接口

纯请求接口即只执行数据查询,必须天气查询,可分为携带参数和不携带参数(也有其他分类方式)

举个例子,我们想要知道一周天气如何,如果由自己来实现这个功能很难,因为天气数据只有气象部门才知道。那该如何知道天气信息呢?气象部分提供数据API给我们使用,我们只要输入地区就会知道该地区一周的天气情况,但我们并不需要了解这天气预报是如何实现的。

这里案例使用:天气预报 数据接口_免费API接口调用-聚合数据

接口地址:http://apis.juhe.cn/simpleWeather/query
返回格式:json
请求方式:http get/post
请求示例:http://apis.juhe.cn/simpleWeather/query?city=北京&key=ae876bca9e9756a21f49cd39c6e3bc06
接口备注:通过城市名称或城市ID查询天气预报情况

直接在浏览器输入请求链接可得到请求数据,我们可以打开开发者工具来查看:
在这里插入图片描述
在这里插入图片描述
通过接口工具,比如Postman:
在这里插入图片描述

2.开发中的API接口请求

开发过程中一般默认将请求划分为多个字段,拼接调用,例如天气预报这个,可以抽离出以下内容:

baseUrl:'http://apis.juhe.cn',
path:'/simpleWeather/query',
params:{
	city:'北京',
	key:'ae876bca9e9756a21f49cd39c6e3bc06'
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

在开发时组合起来:

fetch(baseUrl + path + '?city=' + params.city + '&key=' + params.key ,{
  method: 'get'
}).then(
  r => r.json()
)
// 或是使用ES6语法:
fetch(`${baseUrl}${path}?city=${params.city}&key=${params.key}`,{
  method: 'get'
}).then(
  r => r.json()
)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

当然在使用了框架或是大型项目中这些会被拆解到不同文件中,因此将他们联系起来才能进行开发。

比如会有api这样的一个目录专门存放接口请求的js文件,或是在mvc/mvvm的结构下使用model目录来写与数据操作和行为相关的逻辑

  • 使用类似axios的http库,还会存在二次封装,使用请求/响应拦截器等。

五、常用API接口工具

1.接口测试工具

在线接口测试工具:

2.接口文档管理工具

适合写api接口文档的管理工具有哪些?

六、本地搭建接口服务

七、如何设计一个API接口

单一职责原则告诉我们实现类要职责单一;里氏替换原则告诉我们不要破坏继承体系;依赖倒置原则告诉我们要面向接口编程;接口隔离原则告诉我们在设计接口的时候要精简单一;迪米特法则告诉我们要降低耦合。而开闭原则是总纲,他告诉我们要对扩展开放,对修改关闭。接口在设计模式中,有很多的灵活应用。


入门不久,只是初步理解,后续有新理解持续更新!


参考资料及推荐阅读:

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/2023面试高手/article/detail/118623?site
推荐阅读
相关标签
  

闽ICP备14008679号