程序员的“百宝箱”: GitHub 上最全的免费 API 集合 - public-apis 深度解读
还在为寻找合适的 API 苦恼吗?还在为项目的快速原型开发抓耳挠腮吗? 别担心,GitHub 上的 public-apis/public-apis 项目,犹如一个程序员的“百宝箱”,汇集了海量的免费公共 API,涵盖了各种各样的功能,从天气预报到游戏数据,从图像处理到社交媒体,应有尽有。
本文将带你深入了解这个项目,解锁它的强大功能,让你在项目开发中如虎添翼,极大地提高效率。 准备好迎接你的 API 盛宴吧!
一、 什么是 public-apis? 它的价值何在?
public-apis/public-apis 是一个由 derekeder 维护的 GitHub 仓库,其主要目标是: 收集、整理和展示互联网上各种免费、公开可用的 API (应用程序编程接口),方便开发者进行项目开发、学习和测试。 可以理解为,它是一个 API 的“搜索引擎”,但更强大,因为它不仅仅提供 API 的列表,还提供 API 的详细信息、示例代码、认证方式等。
它的价值在于:
- 资源丰富: 汇集了数千个 API,涵盖了各种各样的功能,满足了几乎所有开发需求。
- 免费且公开: 所有 API 都是免费且公开的,你可以随意使用,无需支付任何费用。
- 持续更新: 社区贡献者会不断更新和维护这个仓库,确保 API 的可用性和时效性。
- 组织清晰: API 按照类别和功能进行分类,方便查找。你可以轻松找到自己感兴趣的 API。
- 详细信息: 每个 API 通常都会提供详细的文档、示例代码和认证方式,帮助你快速上手。
- 社区驱动: 这是一个由社区驱动的项目,每个人都可以贡献自己的力量。 你可以提交新的 API,改进现有的信息,为社区做出贡献。
- 快速原型开发: 利用这些免费 API,你可以快速构建项目的原型,验证你的想法,节省时间和成本。
- 学习 API 的绝佳资源: 通过使用这些 API,你可以学习如何与 API 交互,了解 API 设计模式,提高你的 API 开发能力。
二、 如何高效利用 public-apis?
public-apis 的资源浩如烟海,为了充分利用它,你需要掌握一些技巧:
-
访问 GitHub 仓库:
首先,你需要访问 public-apis 的 GitHub 仓库:https://github.com/public-apis/public-apis
-
熟悉目录结构:
public-apis 的目录结构经过精心设计,这有助于你快速找到所需 API。 主要目录结构如下:
README.md
:项目的说明文档,包含了项目介绍、贡献指南、 API 状态说明等。README.md
内部包含了 API 列表,API 按照类别分组,例如:Animals
(动物)Anime
(动漫)Art & Design
(艺术与设计)Books
(书籍)Business
(商业)Calendar
(日历)Cloud
(云服务)Commerce
(电商)Currency Exchange
(货币兑换)Data Science
(数据科学)Development
(开发)Entertainment
(娱乐)Environment
(环境)Events
(活动)Finance
(金融)Food & Drink
(食品和饮料)Games & Comics
(游戏和漫画)Geocoding
(地理编码)Government
(政府)Health
(健康)Jobs
(工作)Machine Learning
(机器学习)Music
(音乐)News
(新闻)Open Source
(开源)Photography
(摄影)Programming
(编程)Science & Math
(科学与数学)Security
(安全)Social
(社交)Sports & Fitness
(体育与健身)Test Data
(测试数据)Text Analysis
(文本分析)Tracking
(追踪)Transportation
(交通)URL Shorteners
(网址缩短)Vehicle
(车辆)Video
(视频)Weather
(天气)
每个类别下面列出了该类别下的 API,通常包括:
- API 名称
- API 描述
- API 链接 (指向 API 的文档)
- HTTPS 支持 (是否支持 HTTPS)
- CORS 支持 (是否支持 CORS)
- Auth 类型 (认证方式,例如 API Key, OAuth)
-
根据类别和功能筛选:
- 浏览 API 列表: 打开
README.md
文件,浏览 API 列表,查看 API 描述,了解其功能。 - 按类别搜索: 根据你的项目需求,选择相应的类别。 例如,如果你想开发一个天气应用,就选择
Weather
类别。 - 使用关键词搜索: 在浏览器中使用页面内搜索功能 (通常是
Ctrl + F
或Cmd + F
),搜索关键词来快速找到目标 API。 例如,搜索 “currency” 可以找到货币相关的 API。 - 关注 API 的认证方式: 根据 API 的认证方式,选择合适的 API。 有些 API 需要 API Key,有些 API 支持 OAuth 认证,有些 API 不需要认证。
- 检查 HTTPS 和 CORS 支持: 如果你的项目需要 HTTPS 或 CORS 支持,请选择支持这些功能的 API。
- 浏览 API 列表: 打开
-
利用 GitHub 的功能:
- Star & Watch: 给项目点 Star 可以关注这个项目,方便你跟踪更新。 Watch 可以让你收到项目有任何变动时的通知。
- Fork: Fork 这个项目,你可以将其复制到你的 GitHub 账号下,方便你个性化修改和整理 API 列表。
- Issues: 如果你发现了 API 失效、内容错误或者有新的 API 推荐,可以通过 Issues 功能向项目维护者反馈。
-
阅读 API 文档:
- 点击 API 链接: 进入 API 的官方文档,了解 API 的使用方法、参数、返回值、错误码等。
- 阅读快速入门: 很多 API 都提供了快速入门教程或示例代码,可以帮助你快速上手。
- 测试 API: 使用 API 提供的测试工具或 Postman 等工具,测试 API 的功能。
-
根据 API 的状态标签选择 API:
在 README.md 中,API 通常会带有不同的状态标签,例如:
🟢
(Operational) - API 运行正常,推荐使用🟡
(Degraded) - API 运行可能出现问题🔴
(Down) - API 无法使用🟠
(Limited) - API 存在限制,例如速率限制或免费使用配额有限⚫
(Unknown) - API 状态未知,需要进一步验证
根据状态标签,选择可用的 API。
-
考虑 API 的速率限制和使用限制:
许多免费 API 都有速率限制,即在一定时间内允许的请求次数。 在使用 API 时,需要考虑速率限制,避免超限导致 API 无法使用。 一些 API 还有免费使用配额限制,超过配额需要付费。
三、 推荐几个值得尝试的 API
public-apis 提供了海量的 API,这里列出几个值得推荐的,并附带了简单的使用示例,帮你快速上手:
1. Weather API (天气 API):
- API 名称: AccuWeather API (示例)
- 描述: 提供全球天气数据,包括天气预报、实况天气等。
- API 链接: https://developer.accuweather.com/ (需要注册获取 API Key)
示例 (Python):
import requests# 替换为你的 API Keyapi_key = \"YOUR_API_KEY\"location_key = \"34858\" # 纽约市的 Location Key,可以在 AccuWeather 网站上查找url = f\"http://dataservice.accuweather.com/forecasts/v1/daily/1day/{ location_key}?apikey={ api_key}&language=zh-cn&metric=true\"try: response = requests.get(url) response.raise_for_status() # 检查请求是否成功 data = response.json() # 提取天气信息 if \"Headline\" in data: headline = data[\"Headline\"][\"Text\"] print(f\"天气概况: { headline}\") if \"DailyForecasts\" in data: forecast