API简介

API的概念

API(Application Programming Interface, 应用程序编程接口)是一些预先定义的函数,目的是提供应用程序与开发人员基于某软件或硬件得以访问一组例程的能力,而又无需访问源码或理解内部工作机制的细节。

API的特点

  • API是一个明确定义的接口,可以为其他软件提供特定服务。
  • API可以小到只包含一个单独的函数,也可以大到包含数以百计的类、方法、全局函数、数据类型、枚举类型和常量等。
  • API的实现可以是私有的,也可以是开源的。

API的分类

  • 面向对象语言的API,如Java API列表
  • 库与框架的API,如Windows API、Windows DirectX
  • API与协议,如LDAP应用程序接口
  • API与设备接口,如PC BIOS调用接口、ASPI for SCSI设备接口
  • Web API,如百度地图API、新浪微博API、阿里云API市场

为什么要使用API

  • 快速扩展功能
  • 避免“造轮子”,提高开发效率
  • 降低模块之间的耦合度

Web API协议

Web API一般采用HTTP作为底层协议,HTTP请求机制如下:

  • 客户端向服务器发送一个请求
  • 服务器给客户端一个响应,告诉客户端是否可以完成它请求的工作
  • 客户端和服务器可以采用不同的编程语言平台
    在这里插入图片描述

HTTP请求包含的内容

为了构造有效的请求,客户端需要包含4部分内容:

  • 请求地址 URL
  • 请求方式 Method
  • 请求头 Headers
  • 请求主体 Body

在这里插入图片描述

请求头和请求主体

  • 请求头Headers提供了请求的元信息,是一个简单的项目列表,其中有客户端发送请求的时间和请求主体大小、身份认证等信息。
  • 请求主体Body包含了客户端希望发送给服务器的数据。

返回的状态码

  • 2xx 请求成功
  • 4xx 业务报错,一般为参数错误、签名错误、请求方式错误等
  • 5xx 服务不可用或服务器内部错误

返回的数据格式

API和SDK的区别

  • 定义的范围:
    • API是一个个具体的函数,一个确定的功能,一个获取后端数据的通道。
    • SDK是辅助开发某类软件的相关文档、范例和工具的集合。
  • 封装的形式:
    • API是封装在服务端层面的Library,从网络服务的层面暴露出接口供调用,与编程语言实现无关。
    • SDK是封装在客户端层面的Library,提供一些客户端API接口,SDK暴露出来的接口是和编程语言相关的。

以更形象的方式解释一下:
你想提取公积金,于是你公司的HR告诉你,你需要去找一个能办理公积金业务的银行。
这里的能办理公积金业务代表一种能力,一种API。如果一个银行具有办理公积金业务的能力,那么就说这个银行具有这种API。
而这个银行呢,它就是一个SDK,它提供办理公积金的能力,所有细节,并且,它还可能给你提供额外的功能,例如免费复印身份证复印件的功能。

©️2020 CSDN 皮肤主题: 鲸 设计师:meimeiellie 返回首页