药品信息查询返回字段全解:分类/信息/详情三类结构一文读懂
# 药品信息查询返回字段全解:分类/信息/详情三类结构一文读懂
- **接口/接入点**:药品信息查询(apiCode=1468)· 1468-1 / 1468-2 / 1468-3 / 1468-4
- **是否免费**:免费(有档位限制)
- **请求方式**:POST / GET
- **返回格式**:JSON
- **适用人群**:所有接入开发者
- **阅读时间**:约 6 分钟
## 核心要点
- 四个接入点的返回都包在 `showapi_res_body` 里,统一用 `ret_code == "0"` 判断成功。
- 1468-1 返回 `data[]`(分类树),1468-2 返回 `data[]`(药品列表),1468-3/1468-4 返回 `drugList[]`(说明书级详情)。
- `drugList` 里的 `type` 是**数组**,元素含 `type1`/`typeCode`/`type2`(大分类/分类Id/小分类),不要当成平铺字段。
## Why:为什么需要一份字段速查
不同接入点返回结构不同,第一次接入很容易把 `data` 和 `drugList` 搞混,或被 `type` 字段的嵌套结构绊住。本文把三类结构集中对照,作为全系列的可搜索引页,其他文章都链接到这里。
## What:接口速览
| 接入点 | 返回集合字段 | 元素关键字段 |
|------|------|------|
| 1468-1 药品分类 | `data[]` | `class`(大分类)、`classify`(小分类)、`classifyId` |
| 1468-2 药品信息 | `data[]` | `drugId`、`drugName`、`manu`、`pzwh`、`classifyId` |
| 1468-3 药品详细信息 | `drugList[]` | 见下方「详情字段表」 |
| 1468-4 药名查询药品信息 | `drugList[]` | 同 1468-3 |
## How:读懂返回
### 药品分类(1468-1)
`data[]` 每个元素:
| 字段 | 含义 |
|------|------|
| `class` | 药品大分类,如「感冒发热」「男科用药」 |
| `classify` | 药品小分类,可能跨大分类重复 |
| `classifyId` | 小分类 Id,作为 1468-2 必填参数 |
### 药品信息(1468-2)
返回顶层还有 `count`(总数)、`page`、`maxResult`(单页条数);`data[]` 每个元素:`drugId`、`drugName`、`manu`(药企)、`pzwh`(药准字号)、`classifyId`。
### 药品详情(1468-3 / 1468-4)
`drugList[]` 元素常见字段(来自真实返回示例):
| 字段 | 含义 |
|------|------|
| `tymc` / `spmc` | 通用名称 / 商品名称 |
| `drugName` / `drugId` | 药品名称 / 药品 Id |
| `manu` | 生产企业 |
| `pzwh` | 批准文号(药准字号) |
| `jx` / `gg` | 剂型 / 规格 |
| `fl` / `pp` | 药品分类(如中成药)/ 品牌 |
| `syz` / `zycf` | 适应症 / 主要成份 |
| `yfyl` / `jj` / `zysx` | 用法用量 / 禁忌 / 注意事项 |
| `blfy` / `yxq` / `zc` | 不良反应 / 有效期 / 贮藏 |
| `zxbz` | 执行标准 |
| `wyy` | 是否外用药(示例值「否」) |
| `type` | **分类集合数组**,元素含 `type1`(大分类)、`typeCode`(分类Id)、`type2`(小分类) |
| `price` | 参考价(返回示例出现 `"41.00"`,**字段表未列,以实际返回为准**) |
## 返回示例与解析
```json
{
"showapi_res_body": {
"ret_code": "0",
"msg": "查询成功!",
"page": 1,
"maxResult": 10,
"count": 1,
"drugList": [
{
"tymc": "泻肝安神丸",
"drugName": "同仁堂 泻肝安神丸",
"manu": "北京同仁堂制药有限公司(国产)",
"pzwh": "国药准字Z11020957",
"jx": "丸剂(水丸)",
"gg": "6g*12袋",
"syz": "清肝泻火,重镇安神。用于失眠,心烦,惊悸及神经衰弱。",
"type": [
{ "type1": "感冒发热", "typeCode": "599ad283600b2149d689b5e9", "type2": "心烦气躁" },
{ "type1": "精神心理疾病", "typeCode": "599ad2a5600b2149d689b794", "type2": "神经衰弱" }
],
"price": "41.00"
}
]
}
}
```
注意:`type` 是数组,一个药品可归属多个大/小分类;文档字段表把 `type1/type2/type2Code` 写成 drugList 平铺子字段,与实际返回结构不一致——**以实际返回(数组)为准**。
## 进阶 / 边界
- `ret_code` 文档仅定义「0 成功,其他失败」,无具体非 0 枚举,不要编造错误码。
- `price` 非字段表字段,是否返回、是否准确取决于数据源,仅作参考,不可当作官方定价。
- `classify` 重复问题在分类查询场景需重点处理,详见[分类下钻一文](https://www.showapi.com/guides/drug-info-classification-1468)。
## FAQ
**Q1:ret_code 和 showapi_res_code 有什么区别?**
A:系统级 `showapi_res_code` 表示请求整体是否送达(0 成功);业务级 `showapi_res_body.ret_code` 表示业务是否成功("0" 成功)。判断业务结果看 `ret_code` 即可。
**Q2:type 字段为什么有时取不到 type1?**
A:因为 `type` 是数组,正确取法是 `drugList[0].type[0].type1`,而不是 `drugList[0].type1`(那是文档字段表的误导写法)。
**Q3:price 字段文档没写,能用吗?**
A:返回示例里出现过,说明部分药品会带参考价,但字段表未正式列示,建议以实际返回为准,且不要当作官方售价对外展示。
**Q4:data 和 drugList 用混了怎么办?**
A:1468-1/1468-2 用 `data`,1468-3/1468-4 用 `drugList`,按接入点取对应字段即可。
## 相关能力 / 下一步阅读
- [药品信息查询:5 分钟快速接入指南](https://www.showapi.com/guides/drug-info-quickstart-1468)
- [药品详细信息检索:searchType 四种类型与 classifyId 必填规则](https://www.showapi.com/guides/drug-info-detail-search-1468)
- [药品参考价格(price)字段解读与使用注意](https://www.showapi.com/guides/drug-info-price-1468)
- **本系列共 11 篇**:查看[药品信息查询指南总目录](https://www.showapi.com/guides/drug-info-guides-1468)