API 类别 - 方法学习笔记
什么是API?
API(Application Programming Interface,应用程序接口)是一组定义、提供给第三方开发者使用的编程规范、协议和工具集合。在软件开发中,API定义了不同组件之间如何互相通信,同时也决定了外部用户如何访问内部功能。
API 分类
根据不同的分类标准,API可以分为多个类别,其中常见的分类包括:
基于目的的分类
根据不同的使用目的,API可以被分为:
- 内部API:由同一公司或组织的不同部门或子系统之间使用的API。
- 公共API:向任何外部用户或开发者开放的API,用于扩展产品或服务的功能。
- 合作API:与特定合作伙伴共享的API,用于实现特定的业务目标。
基于形式的分类
根据不同的形式,API可以被分为:
- RESTful API:符合REST(Representational State Transfer,表征状态转移)架构风格的API。
- SOAP API:基于SOAP(Simple Object Access Protocol,简单对象访问协议)协议的API。
- RPC API:基于Remote Procedure Call(远程过程调用)协议的API。
基于数据的分类
根据不同的数据类型,API可以被分为:
- 数据库API:用于访问和管理数据库的API。
- 文件API:用于访问和管理文件系统的API。
API 方法
针对不同的API类别,我们需要使用不同的方法进行开发和调用。下面针对不同的API类别,给出一些常见的API方法:
RESTful API
- GET:用于获取资源信息。
- POST:用于创建新的资源。
- PUT:用于更新已有的资源。
- DELETE:用于删除资源。
SOAP API
- SOAP(Simple Object Access Protocol):基于XML的协议,用于在不同的应用程序之间进行通信。
- WSDL(Web Services Description Language):用于描述服务、服务地址和通信协议等信息的XML语言。
- UDDI(Universal Description, Discovery, and Integration):用于注册、散列表和查找Web服务的协议。
RPC API
- 使用远程过程调用协议进行方法调用和参数传递。
数据库API
- SQL(Structured Query Language):用于创建、查询、修改和删除数据库中的数据。
- JDBC(Java Database Connectivity):Java语言访问数据库的标准API。
文件API
- File API:用于访问和管理文件系统的API。
- FileReader:用于读取文件内容。
- FileWriter:用于写入文件内容。
实例:使用RESTful API调用GitHub Public API
首先,我们需要获取GitHub API的URL和token。
Copy Codeconst apiUrl = 'https://api.github.com';
const token = 'xxxxxx';
然后,我们可以使用fetch()
方法向GitHub API发送请求,并使用不同的HTTP方法来获取或修改资源信息。
- 获取所有公开仓库:
Copy Codefetch(`${apiUrl}/repositories`, {
method: 'GET',
})
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error(error));
- 根据关键词搜索仓库:
Copy Codefetch(`${apiUrl}/search/repositories?q=javascript`, {
method: 'GET',
})
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error(error));
- 创建新的仓库:
Copy Codefetch(`${apiUrl}/user/repos`, {
method: 'POST',
headers: {
Authorization: `Bearer ${token}`,
},
body: JSON.stringify({
name: 'new-repo',
description: 'A new repository created by API.',
private: false,
}),
})
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error(error));
- 更新已有的仓库信息:
Copy Codefetch(`${apiUrl}/repos/:owner/:repo`, {
method: 'PATCH',
headers: {
Authorization: `Bearer ${token}`,
},
body: JSON.stringify({
name: 'new-repo',
description: 'A new repository created by API. (updated)',
}),
})
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error(error));
- 删除仓库:
Copy Codefetch(`${apiUrl}/repos/:owner/:repo`, {
method: 'DELETE',
headers: {
Authorization: `Bearer ${token}`,
},
})
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error(error));
以上就是一个使用RESTful API调用GitHub Public API的实例,希望对您有所帮助。