技术博客
车型大全三级联动查询实战:品牌→车系→车型详情全链路设计

车型大全三级联动查询实战:品牌→车系→车型详情全链路设计

作者: 万维易源
2026-09-02
车型大全三级联动全链路
# 车型大全三级联动查询实战:品牌→车系→车型详情全链路设计 > 接口/接入点:车型大全(apiCode 1467)· 1467-1 / 1467-2 / 1467-3 串联 · 免费 · POST/GET · JSON · 适用人群:全栈工程师、产品经理 · 阅读时间:约 10 分钟 ## 核心要点 - 车型大全天然是三级结构:1467-1 取品牌拿 `brand_id` → 1467-2 按 `brandId` 取车系拿 `series_id` → 1467-3 凭 `brandId`+`serieId` 取详情。 - 每一级的 Id 是下一级的入参,建议把"品牌→车系→车型"三张表在本地落库,避免每次实时三级联调。 - 车型详情有 `maxResults≤20` 上限和必填校验,前端做下拉级联时要先保证上级 Id 已拿到。 ## Why 汽车类应用最常见的一个交互就是"选品牌 → 选车系 → 选车型"的三级下拉。车型大全的三个接入点正好对应这三步,但很多人卡在"Id 怎么串"。本文给你一套可直接落地的级联设计方案,含数据表结构与调用顺序。 ## What | 步骤 | 接入点 | 入参 | 取出给下一级的 Id | |------|--------|------|------------------| | 1 品牌 | 1467-1 | 无 | `brand_id` | | 2 车系 | 1467-2 | `brandId`(建议用 Id 而非品牌名) | `series_id`、`model_id` | | 3 详情 | 1467-3 | `brandId` + `serieId`(必填) | —(拿到具体款型配置) | ## How ### 步骤 1:建三张本地表(仅存 Id 与名称) ```sql CREATE TABLE brand (brand_id VARCHAR(32) PRIMARY KEY, brand VARCHAR(64), initial CHAR(1)); CREATE TABLE series (series_id VARCHAR(32) PRIMARY KEY, brand_id VARCHAR(32), series VARCHAR(64), model VARCHAR(64), model_id VARCHAR(32)); CREATE TABLE model (model_id VARCHAR(32) PRIMARY KEY, brand_id VARCHAR(32), series_id VARCHAR(32), mod_type VARCHAR(128), nev TINYINT); ``` ### 步骤 2:Python 串联三级调用 ```python import requests APP_KEY = "YOUR_APPKEY" BASE = "https://route.showapi.com" def call(path, params): r = requests.post(f"{BASE}/{path}", params={"appKey": APP_KEY, **params}, timeout=10) body = r.json()["showapi_res_body"] if body.get("ret_code") != "0": raise RuntimeError(body.get("msg", "fail")) return body # 1) 品牌 brands = call("1467-1", {})["data"] print([b["brand"] for b in brands[:3]]) # 2) 车系(用 brand_id 更稳,避免品牌名歧义) brand = brands[0] series = call("1467-2", {"brandId": brand["brand_id"]})["data"] print(series[0]) # 含 series_id / model_id # 3) 车型详情(brandId + serieId 必填) serie = series[0] detail = call("1467-3", {"brandId": brand["brand_id"], "serieId": serie["series_id"], "page": 1, "maxResults": 10}) print(detail["data"][0]["car_model"], detail["data"][0]["mod_type"]) ``` ### 步骤 3:前端级联下拉 先加载品牌下拉;选中品牌后调 1467-2 填充车系下拉;选中车系后调 1467-3 渲染车型款型与配置。每次上级变化时清空下级并重新请求。 ## 返回示例与解析 见《车型大全返回字段全解》中的三级结构对照。`1467-2` 的 `data[]` 同时带有 `series`/`series_id` 和 `model`/`model_id`,可在二级下拉中直接展示"车系—车型"两级文本。 ## 进阶/边界 - 优先用 `brand_id` 入参而非 `brandName`:品牌名可能存在歧义或别名,Id 才是稳定主键。 - 车型详情 `maxResults` 最大 20,大车系要翻页(`page` 递增)才能拉全;建议初始化时一次性落库,运行时不再实时三级联调。 - `1467-3` 的 `brandId` 与 `serieId` 缺一不可,前端务必在入参齐全后再发起请求。 ## FAQ **Q: 能不能跳过车系,直接用 brandId 拿车型详情?** 不能。车型详情要求 `brandId` + `serieId` 两个必填,必须先从 1467-2 取得 `series_id`。 **Q: brandName 和 brandId 用哪个?** 用 `brandId` 更稳。品牌名可能有歧义,Id 唯一且被三个接入点共用。 **Q: 车系查询一次返回很多车型,怎么不全?** 用 `page` + `maxResults` 翻页;`maxResults` 上限 20。初始化建库时循环翻页拉全。 ## 相关能力 / 下一步阅读 - [车型大全车系查询怎么用:按品牌名或 brandId 拉出全部车系](https://www.showapi.com/guides/car-model-series-query-1467) - [车型大全车型详情字段拆解:发动机/变速箱/底盘/安全配置怎么读](https://www.showapi.com/guides/car-model-detail-explain-1467) - **本系列共 12 篇**:查看[车型大全 API 指南总目录](https://www.showapi.com/guides/car-model-guides-1467)