加油站、充电站数据 API 平台是一套开箱即用的 API 聚合分发与积分计费系统:开发者注册账号、后台充值积分、创建 API Key 后,调用方凭 Key 与签名调用平台上架的数据产品,每次成功调用自动扣积分。平台本身不实时转发上游数据,所有产品数据预先落地本地数据库,接口只查本地库,与上游完全解耦——查询更快、稳定性也更高。项目由后端服务、管理后台、开发者控制台(含公开产品市场与文档站)三套应用组成。
开发者如何接入调用?
公开层(无需登录):产品市场展示所有上架产品卡片(名称、描述、单次调用价格、数据量);产品详情文档页展示接口方法、路径、参数表与响应示例,每个接口提供 curl、JavaScript、Python 三种调用示例一键复制,底部附签名算法说明,支持一键下载 Markdown 完整接口文档。
控制台(需登录):
- 总览展示积分余额、累计调用次数及消耗积分、API Key 数量与最近 10 条调用记录;
- API Key 管理:创建 Key 时填写名称与 QPS 上限(1-1000),可配置 IP 白名单(逗号分隔);创建成功弹窗展示 API Key 与 API Secret 一对密钥,Secret 仅此一次可见并有保存警示;支持启停开关与删除(二次确认);
- 调用记录:分页展示自己的调用日志(产品、状态、扣费、耗时、IP、时间)。
网关的十步处理流程是怎么设计的?
所有对外接口统一走网关,按固定顺序完成 10 步处理,业务产品只负责「查什么表、返回什么」:
- Key 鉴权:校验 X-Api-Key 请求头,不存在 401,停用 403;
- IP 白名单:Key 配置了白名单时,请求 IP 不在名单内 403;
- 时间戳校验:与服务器时间差超过 5 分钟 401;
- Nonce 防重放:同一 Key 相同 nonce 5 分钟内不可重复;
- 签名校验:HMAC-SHA256 常数时间比对,签名串为请求方法、路径、时间戳、nonce、请求体哈希五段换行拼接;
- QPS 限流:按 Key 做 1 秒滑动窗口计数,超限 429;
- 产品与余额预检:产品不存在或未上架 404,用户被禁用 403,余额不足 402;
- 执行产品逻辑:查询本地库;
- 成功原子扣费:条件更新保证不超扣,写积分流水并更新 Key 最后使用时间;
- 写调用日志:记录用户、Key、产品、请求 ID、扣费、状态、耗时、IP。
计费规则:仅成功调用扣费,鉴权失败、余额不足、限流、参数错误、产品异常均不扣费。
内置了哪些数据产品?
- 加油站产品:附近加油站(传经纬度,可选半径默认 10 公里最大 50、条数默认 20 最大 50,按距离升序返回含公里数)、油站详情(附油价列表与油枪列表)、油站搜索(关键字匹配名称/地址/品牌,可按城市过滤分页)。
- 充电站产品:附近充电站(按距离返回,含快充桩数、慢充桩数)、充电站详情。
当前数据规模:加油站 18283 条、充电站 19461 条、油价明细 43625 条,附近查询实测 2-9 毫秒返回。查询通过经纬度范围剪枝加距离公式排序实现,经纬度上建了复合索引。
管理后台与数据工具链包含什么?
管理后台:仪表盘六个统计卡片(今日调用量、今日消耗积分、用户总数、今日新增用户、平台总积分、启用 Key 数)与分产品调用表;用户管理支持搜索、充值积分(原子增加并写充值记录与积分流水)、启用禁用;产品管理支持行内改价即存、上下架开关、Markdown 接口文档在线编辑;全局调用日志可按状态(成功、无效 Key、余额不足、限流、产品异常)筛选,另有全局 Key 只读列表。
数据工具链:源库导出脚本(从现有项目库导出油站、充电站、油价、油枪四类数据为 JSON,联表取平台 ID)、数据导入器(按业务唯一键幂等覆盖、500 条一批批量写入,完成后自动更新产品同步状态与数据量)、充电站拉取脚本(针对快电类 API 只支持按位置查询的限制,按全国城市网格+30 公里半径+分页扫描去重)、网关端到端自测脚本(登录→充值→建 Key→签名调用→验证扣费、日志与流水全链路回归)。
数据库设计:13 张表——业务表 8 张(用户、API Key、产品、调用日志、积分流水、充值记录、管理员、数据同步日志)+ 产品数据表 4 张(按产品独立前缀隔离,新增产品只需新建数据表)+ 种子数据。后端启动时检测数据库连通性、自动创建默认管理员、打印数据量并提示导入命令。
如果你在做 API 产品的技术选型,在线工具与SaaS栏目还收录了文档格式转换、到期提醒等其他工具类系统。