技术博客
地区新闻接口:areaId 与 areaName 怎么选,先用区域查询拿 ID 再查新闻

地区新闻接口:areaId 与 areaName 怎么选,先用区域查询拿 ID 再查新闻

作者: 万维易源
2026-09-01
地区新闻接口areaIdareaName
# 地区新闻接口:areaId 与 areaName 怎么选,先用区域查询拿 ID 再查新闻 > 接口/接入点:地区新闻接口(apiCode 170)· 跨 47/48 两接入点|免费 · POST/GET · 返回 JSON · 适用人群:后端开发者、数据工程师 · 阅读时间:约 5 分钟 ## 核心要点 - `areaName` 是可读地名(如「江西」),方便人写;`areaId` 是稳定 ID(如 `55818af8085b7bc0c73836c4`),适合机器精确匹配。 - 标准链路:先用「区域查询」(48) 拉全量地区缓存成映射,再用 `areaId` 调「根据地区查询新闻」(47)。 - 用 ID 能避免地名别名、错别字、繁简体等导致的过滤失效。 ## Why:为什么推荐用 areaId 而不是 areaName 接入点 47 同时接受 `areaName` 和 `areaId`。初学常直接传 `areaName="江西"`,多数情况没问题;但一旦遇到「内蒙古自治区」vs「内蒙古」、错别字、或是前端下拉回传的是 ID,用名字就易出错。把 `areaId` 当成唯一主键,是更工程化的做法,也为缓存和精确查询打基础。 ## What:两个字段对比 | 维度 | areaName | areaId | |------|----------|--------| | 含义 | 地区名称(可读) | 地区唯一 ID(稳定) | | 来源 | 人工输入/下拉展示 | 区域查询(48) `cityList` | | 稳定性 | 可能受称呼/别名影响 | 文档说明基本不变动 | | 推荐用途 | 快速手测、demo | 生产环境精确查询、缓存主键 | ## How:标准调用链路 ### 第 1 步:区域查询拿映射(只在启动时做一次) ```python import requests, json r = requests.post("https://route.showapi.com/170-48", params={"appKey":"YOUR_APPKEY"}, headers={"content-type":"application/x-www-form-urlencoded"}, timeout=10) name_to_id = {c["areaName"]: c["areaId"] for c in r.json()["showapi_res_body"]["cityList"]} ``` ### 第 2 步:用 areaId 精确查新闻 ```python area_id = name_to_id.get("江西") # 用 ID,不用名字 r2 = requests.post("https://route.showapi.com/170-47", params={"appKey":"YOUR_APPKEY"}, data={"areaId": area_id, "page": 1}, headers={"content-type":"application/x-www-form-urlencoded"}, timeout=10) body = r2.json()["showapi_res_body"] for it in body["pagebean"]["contentlist"]: print(it["title"], it["areaName"]) ``` **cURL(直接传 areaId)** ```bash curl -X POST "https://route.showapi.com/170-47?appKey=YOUR_APPKEY" \ -H "content-type: application/x-www-form-urlencoded" \ --data-urlencode "areaId=55818af8085b7bc0c73836c4" \ --data-urlencode "page=1" ``` ## 返回示例与解析 与返回字段全解篇一致:`contentlist` 每条约 8 个字段,`areaId`/`areaName` 会随新闻归属回填,可用于校验查询是否命中预期地区。 ## 进阶 / 边界 - 若只做一次性 demo,`areaName` 更直观;但凡要上生产、要稳定,优先 `areaId`。 - 前端下拉建议直接把 `areaId` 作为 option 的 value,`areaName` 作为显示文本,回传即 ID,避免二次转换。 - 区域查询返回的地区数量可能随产品调整(示例 34),以实际 `cityList` 为准,勿硬编码数量。 ## FAQ **Q:areaId 和 areaName 同时传会怎样?** A:文档未明确二者优先级,建议二选一。本文推荐只用 `areaId` 以保证精确。 **Q:缓存的 areaId 过期了怎么办?** A:文档说明区域数据基本不变动;可在服务启动时加载,并设一个较长过期时间(如 7 天)后台刷新即可。 **Q:找不到我要的地区名?** A:以区域查询返回的 `cityList` 为准;若列表中没有,说明该接口暂未覆盖,不要臆造 areaId。 ## 相关能力与下一步阅读 - [地区新闻接口区域查询:获取全国 34 个地区与 areaId 映射](https://www.showapi.com/guides/region-news-region-query-170) - [地区新闻接口:按地区/标题查新闻的参数使用指南](https://www.showapi.com/guides/region-news-query-by-area-170) - **本系列共 12 篇**:查看[地区新闻接口(apiCode 170)官方指南总目录](https://www.showapi.com/guides/region-news-guides-170)