ARTICLE DETAIL

资讯详情

深耕编程入门与网站建设的一线实战洞察。

800+ 免费API速查:开源API列表从选型到跑通的第一小时

800+ 免费API速查:开源API列表从选型到跑通的第一小时 800 免费API速查开源API列表从选型到跑通的第一小时【免费下载链接】public-api-listsA curated list of free public APIs — searchable, community-maintained, with a free JSON API.项目地址: https://gitcode.com/GitHub_Trending/pu/public-api-lists周五晚上要交 demo临时缺个天气数据源。翻遍官网和注册页都嫌慢这时候你会想有没有一份免费API接口合集打开就能挑public-api-lists 就是干这事的一个社区维护的开源API列表按 48 个类别收录了 800 多个免费接口还标好了认证方式和 HTTPS、CORS 支持挑完直接跑。项目数据画像先说规模不聊虚的。整个列表就是 README.md 一个文件按类别铺开的大表格收录总量约 800 个接口当前 798 条覆盖 48 个类别从动物到天气、从金融到机器学习认证分布无需认证 371 个、API 密钥 346 个、OAuth 77 个——快一半的接口打开就能用每行信息名称、描述、认证方式、是否 HTTPS、是否支持 CORS五列看全项目还提供一个 JSON 格式的机器可读接口可以直接拿来批量筛选而不是靠肉眼翻表按场景选API从周末Demo到用户账号选 API 别先问支持什么协议先问我要用到什么程度。周末 Demo直接上无需认证的接口原型阶段零配置最重要。动物、动漫、日历这类分类里无认证接口密集比如 dog.ceo 的随机狗图、Open-Meteo 的天气浏览器直接就能请求。// 无认证接口前端直连 fetch(https://dog.ceo/api/breeds/image/random) .then(r r.json()) .then(d console.log(图片地址:, d.message));坑这类接口不承诺可用性demo 里随便用别搬进生产。个人小项目API密钥放环境变量数据要稳定汇率、天气、行情选 apiKey 类。注册拿密钥然后存到环境变量里再读代码里一个字符串都别留下import os import requests key os.getenv(API_KEY) # 密钥从环境变量读不写死 r requests.get( https://api.weatherapi.com/v1/current.json, params{key: key, q: Beijing}, ) print(r.json()[current][temp_c])坑注册时先看清免费额度按天算还是按月算超了是降速还是直接拒。要接用户账号的应用走 OAuth只要碰用户数据邮箱、云盘、社交账号就得走 OAuth。流程固定四步别自己发明1. 引导用户跳到服务商授权页 2. 用户同意回调带授权码回来 3. 后端用授权码换 access token 4. 之后请求带着 token到期刷新坑申请权限按最小原则勾用户数据出了事查不到你头上才是好设计。分类与生态速览48 个类别挑 8 个看不想全文翻的先看这张典型分类表够覆盖多数需求分类收录数典型用途天气 Weather14Demo、数据看板加密货币 Cryptocurrency23行情、K线图开发 Development76代码托管、CI/CD书籍 Books7读书类应用地理位置 Geocoding30地址解析、路由新闻 News14内容聚合游戏与漫画 Games Comics42娱乐向项目金融 Finance26汇率、行情监控认证分布画出来长这样调优两招缓存与重试免费API接口合集解决从哪找找到之后还得会用。两招最实用第一招TTL 缓存。天气、汇率这种数据一小时内重复请求全是浪费// 带TTL的本地缓存过期才请求 let cached null; async function getWithTtl(url, ttl 3600000) { if (cached Date.now() - cached.t ttl) return cached.data; const data await (await fetch(url)).json(); cached { data, t: Date.now() }; return data; }第二招指数退避重试。偶发抖动先重试间隔逐次翻倍避免瞬间打爆对方// 指数退避1s、2s、4s最多重试3次 async function retry(fn, times 3) { for (let i 0; i times; i) { try { return await fn(); } catch (e) { if (i times - 1) throw e; await new Promise(r setTimeout(r, 1000 * 2 ** i)); } } }你大概率会问的 3 件事Q免费 API 的速率限制一般卡在多少常见是每分钟几十个到每天几千个请求具体看各家文档。demo 阶段几乎感知不到上了量先算好峰值再定方案。Q表格里 HTTPS 和 CORS 两列怎么读HTTPS 是传输加密没有的话别传敏感数据CORS 是浏览器跨域前端直连必须看 Yes标 Unknown 的自己实测。Q某个接口突然挂了怎么办同一分类下通常还有两三个同类挑认证方式相近的换掉即可这也是按场景选多备选的由来。跑通它 ✅克隆仓库git clone https://gitcode.com/GitHub_Trending/pu/public-api-lists打开 README.md按顶部索引跳到目标分类挑一行无需认证的接口复制地址直接发个 GET 请求报错就先看 CORS 列还是不行再翻该接口的文档跑通第一个请求比把这篇读完重要。【免费下载链接】public-api-listsA curated list of free public APIs — searchable, community-maintained, with a free JSON API.项目地址: https://gitcode.com/GitHub_Trending/pu/public-api-lists创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表