API 是什么
官方定义:API 英文全称 Application Programming Interface,翻译过来为程序之间的接口。也是程序与外部世界的桥梁,实现了服务拆分与解藕的核心机制
大白话:按照规则提供输入,它帮你得到对应的输出
- API可以是厨师:你提供食材,它输出饭菜
- API可以是司机:你提供目的地,它帮你送到目的地
- API可以是医生:你提供个人基本信息,它给出对应药方
- ...
越是系统化的东西,越容易成为 API,所以有了自动炒菜机帮助炒菜、有辅助驾驶(或 L3 级别的自动驾驶)帮助开车、有 AI 医生辅助开单等
API 发展的必然性
为了使各类程序从孤立的个体转变为可组合、可扩展的生态系统成员,那么需要一些特定的协议、规范,而恰好 API 能够完美的解决这个问题,抽象化程序提供的服务,专注于自身的核心能力
通过 API 接口,各类编程语言互通有无,Python、Java、C++ 等编写好对应的服务后统一暴露出去,减少了重复造轮子的人力消耗,这也是为什么互联网发展才几十年,人类历程的社会化程度却比历史以往快进了一大步。
我们在日常生活中使用大量的电子、软件产品,无时无刻都在调取 API。我们日常生活中使用的微信,登陆页面调取登陆 API 接口,和朋友发送聊天记录调取发送 API 接口,查看微信朋友圈调取朋友圈接口。企业级应用会通过一些工程化手段保证 API 接口的稳定性、响应性
- 稳定性:发送消息断掉了冒红点,当前发送这条消息因为网络波动、或 API 服务商提供者等其他元素导致 API 接口短暂不可用
- 响应性:发送一条消息要很久才能成功,也就是 API 工作时长太慢了
实践案例
你眼中的“黑客”,能获取大量个人身份信息的,可能只是一个 API 侠
只需要掌握一点点调用 API 的知识,你也能完成如下这些事情
-
定位目标地理位置
- 根据用户 IP(IP 就是你上网地址,在使用各类 APP 软件时,会留下痕迹,警察抓捕罪犯,就用的这个)
-
个人身份认证
- 校验姓名和身份证是否一致,还支持返回生日性别、籍贯等隐私
- 人脸识别和身份证是否一致
-
出行服务
- 根据车辆 VIN 码获取车的品牌、车型、出厂、发动机类型、排量、过户次数等
- 查看某城市的限行时间,限行区域、尾号规则等
-
企业服务
- 根据公司名称,获得公司从法人、联系方式、注册资本、成立时间等
- 根据发票号码或 PDF 文档,校验发票真伪等
-
AI 应用与 OCR
- 动植物识别,传入对应的图片,获得信息
- 市面上段时间内出现大量的 AIGC 应用软件(文-> 文、文-> 图、文-> 视频、图 + 文-> 图等等),本质就是调用国内大公司提供的专属于 AI 应用的 API 接口,自己套了一层界面外壳,难点是开发这些 API 服务的厂商们,其他本质上就是拿来主义者
下面给出两个示例
文生视频
生成视频 API 接口
curl --location 'https://dashscope.aliyuncs.com/api/v1/services/aigc/video-generation/video-synthesis' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer xxx' \
--header 'Cookie: acw_tc=335d3876-41eb-900b-9254-fe83495810c147ce41ec769502770f59333ed738835e' \
--data '{
"model": "wanx2.1-t2v-turbo",
"input": {
"prompt": "一只小猫在月光下奔跑"
},
"parameters": {
"size": "1280*720"
}'
- 会得到一个 task_id:81d4d7c3-1cb6-905b-b8f0-40f91e2902f4
调用另一个接口,通过 task_id 获取视频位置
curl --location 'https://dashscope.aliyuncs.com/api/v1/tasks/25603041-160a-48b3-b663-b1c12e31d8b5' \
--header 'Authorization: Bearer xxx' \
--header 'Cookie: acw_tc=335d3876-41eb-900b-9254-fe83495810c147ce41ec769502770f59333ed738835e'
现在,我只要把阿里百炼平台上提供的这两个接口包装下,写套界面外壳,就可以号称自己开发了一款文生视频的软件了(bushi)
根据车辆 VIN 码获取车的身份信息
网上随手找的一个车辆 VIN 码“LFVBA11G223082993”。现在我能拿到它全量信息了
API 市场
聚合数据:www.juhe.cn/docs
rapidapi:rapidapi.com/
API 云市场:market.aliyun.com/apimarket/c…
知名 github 开源 API:github.com/public-apis…github.com/public-apis…