一、车型数据的层级结构
汽车数据天然是一个树状结构:
品牌(Brand) └── 车系(Series) └── 具体车型(Model) └── 配置详情(Spec)车型库接口通常按照这个层级结构设计了四个递进式接口:
| 接口 | 请求参数 | 核心能力 |
|---|---|---|
| 品牌查询 | 无 | 返回全部汽车一级品牌 + 子品牌,按首字母分组 |
| 车系查询 | brand_id | 根据子品牌 ID,查询旗下所有车系 |
| 车型查询 | series_id | 根据车系 ID,获取该车系全部年款车型(含指导价) |
| 车型详情 | cid | 根据车型 CID,返回完整车辆配置参数 |
二、各层级返回字段
2.1 品牌查询
{ "main_brand_id": 1, "main_brand_name": "奥迪", "letter": "A", "img": "http://example.com/logo/audi.png", "brand_list": [ { "brand_id": 101, "brand_name": "一汽-大众奥迪" } ] }brand_id是查询下一级(车系)的关键参数。
2.2 车系查询
传入brand_id,返回:
| 字段 | 说明 |
|---|---|
| series_id | 车系 ID(查询车型的入参) |
| series_name | 车系名称 |
| scale | 车辆级别(小型车 / SUV / 中型轿车等) |
| seriesplace | 产地(国产 / 合资 / 进口) |
| sale_state | 在售 / 停售 |
2.3 车型查询
传入series_id,返回该车系下所有年款车型:
| 字段 | 说明 |
|---|---|
| cid | 车型唯一 ID(查询配置的入参) |
| name | 车型全称 |
| year | 年款 |
| price | 厂商指导价 |
| sale_state | 在售 / 停售 |
2.4 车型配置详情
传入cid,返回完整的车辆配置参数。数据按功能分组:
| 分组 | 包含内容 |
|---|---|
| common | 发动机型号、变速箱、基础尺寸、保修期、综合油耗 |
| engine | 排量、最大马力、峰值扭矩、进气形式、燃油标号 |
| gearbox_body | 轴距、整备质量、座位数、后备箱容积 |
| chassis | 驱动方式、悬架、转向助力 |
| safety | 安全气囊、ABS、ESP 车身稳定等安全配置 |
| control | 驾驶模式、自动驻车、电子手刹 |
| assisted_driving_* | 辅助驾驶硬件与功能 |
| external / light / glass | 轮毂、灯光、天窗、后视镜 |
| internal / seat | 座椅材质、电动调节、加热通风 |
| interconnect_system | 车机、中控屏、手机互联 |
| multimedia | 音响喇叭、品牌音响 |
三、PHP 接入实战
3.1 车系查询示例
接口地址:https://market.aliyun.com/detail/cmapi00065868 <?php $host = "https://market.aliyun.com/detail/cmapi00065868"; $path = "/car/carBrand"; $method = "GET"; $appcode = "你自己的AppCode"; $headers = array(); array_push($headers, "Authorization:APPCODE " . $appcode); $querys = ""; $bodys = ""; $url = $host . $path; $curl = curl_init(); curl_setopt($curl, CURLOPT_CUSTOMREQUEST, $method); curl_setopt($curl, CURLOPT_URL, $url); curl_setopt($curl, CURLOPT_HTTPHEADER, $headers); curl_setopt($curl, CURLOPT_FAILONERROR, false); curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); curl_setopt($curl, CURLOPT_HEADER, true); if (1 == strpos("$".$host, "https://")) { curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false); } var_dump(curl_exec($curl)); ?>3.2 逐级查询的业务逻辑
在实际项目中,逐级查询通常有两种交互模式:
模式一:级联下拉
用户选品牌 → 请求车系列表 → 用户选车系 → 请求车型列表 → 用户选车型 → 展示配置。每一步等待上一步完成后才请求。
模式二:预加载
在品牌列表页,提前把所有品牌的 ID 缓存。用户选中品牌后,并行请求车系列表和热门车型,减少等待时间。
四、数据缓存策略
车型数据的更新频率相对较低(新车上市通常以季度为单位),非常适合做缓存:
- 品牌列表:缓存 7-30 天
- 车系列表:缓存 7-15 天
- 车型列表:缓存 3-7 天
- 配置详情:缓存 1-3 天
缓存未命中时才请求接口,不仅能降低接口调用量,也能提升用户侧响应速度。
五、应用场景
- 二手车估值系统:根据品牌、车系、年款自动填充车辆信息,结合配置参数精准估价
- 维修保养平台:通过车型 ID 获取发动机型号、变速箱类型,自动匹配适配配件
- 汽车金融风控:根据车型指导价、整备质量等参数,辅助评估贷款额度
- 车型识别应用:用户输入品牌/车系关键词后,逐级展示可选车型
六、总结
车型库接口的价值,是把分散在各品牌官网、车型数据库中的结构化信息,通过一个标准化的接口集中暴露出来。对接后只需关注业务逻辑本身,无需关心数据维护和更新的底层工作。