中文近义词反义词 API:5 分钟接入,从注册到第一条查询结果
中文近义词API中文反义词API免费接口ShowAPI # 中文近义词反义词 API:5 分钟接入,从注册到第一条查询结果
> 接口:免费近义词 - 中文近义词和反义词(apiCode=1624)· 免费服务 · POST/GET · 返回 JSON · 适用人群:新注册用户、初级开发者 · 阅读时间:约 5 分钟
## 核心要点
- 输入一个词,返回它的近义词(接入点 `1624-1`)或反义词(接入点 `1624-2`),只用一个必填参数 `keyWords`。
- 免费使用,每次调用消耗 1 计量额度(`showapi_fee_num=1`),无需单独付费。
- 三种语言(Python / Node.js / cURL)示例替换 AppKey 即可运行,返回 `result` 数组逐条打印。
## Why:这跟你有什么关系
写文章想换个更贴切的词、做语文题想查某个词的近义反义、给产品做"用词建议"功能——这些场景都不该自己维护词库。这个接口把"查近义词/反义词"变成一次 HTTP 调用:你传一个词,它返回一串带拼音和释义的近义/反义词。本篇帮你用最短路径跑通第一次调用。
## What:前置条件与接口速览
| 项目 | 说明 |
|------|------|
| 接口 | 免费近义词 - 中文近义词和反义词(apiCode=1624) |
| 接入点 | 近义词 `1624-1`、反义词 `1624-2`(同一 `keyWords` 参数) |
| 请求地址 | `https://route.showapi.com/1624-1`(近义)/ `https://route.showapi.com/1624-2`(反义) |
| 请求方式 | POST(或 GET) |
| Content-Type | `application/x-www-form-urlencoded` |
| 必填参数 | `keyWords`(String):要查询的词 |
| 鉴权 | URL 查询参数 `appKey=你的AppKey` |
| 返回格式 | JSON |
| 计费 | 免费服务;每次调用 `showapi_fee_num=1`(消耗免费额度 1 计量) |
| 更新频率 | 数据持续更新中,每次查询返回最新数据 |
前置条件:在 [ShowAPI 控制台](https://www.showapi.com/console#/myApp) 获取 AppKey。
## How:第一次调用
### 步骤 1 — 取 AppKey
登录后在 [AppKey 管理](https://www.showapi.com/console#/myApp) 复制你的 AppKey。
### 步骤 2 — 发送请求(以"残酷"查近义词为例)
**Python(requests)**
```python
import requests
APP_KEY = "YOUR_APPKEY"
URL = "https://route.showapi.com/1624-1" # 近义词;查反义词换成 1624-2
resp = requests.post(
URL,
params={"appKey": APP_KEY},
data={"keyWords": "残酷"},
headers={"content-type": "application/x-www-form-urlencoded"},
timeout=10,
)
resp.raise_for_status()
data = resp.json()
if data.get("showapi_res_code") != 0:
raise RuntimeError(f"系统级错误: {data.get('showapi_res_error')}")
body = data["showapi_res_body"]
if body.get("ret_code") != 0:
raise RuntimeError(f"业务失败: {body.get('remark')}")
print(f"「残酷」的近义词共 {len(body['result'])} 个:")
for item in body["result"]:
print(f"- {item['words']}:{item['wordsDetail']}")
```
**Node.js(fetch)**
```javascript
const APP_KEY = "YOUR_APPKEY";
const url = `https://route.showapi.com/1624-1?appKey=${APP_KEY}`; // 反义词用 1624-2
const res = await fetch(url, {
method: "POST",
headers: { "content-type": "application/x-www-form-urlencoded" },
body: new URLSearchParams({ keyWords: "残酷" }),
});
const data = await res.json();
if (data.showapi_res_code !== 0) throw new Error(data.showapi_res_error);
const body = data.showapi_res_body;
if (body.ret_code !== 0) throw new Error(body.remark);
for (const item of body.result) {
console.log(`- ${item.words}:${item.wordsDetail}`);
}
```
**cURL**
```bash
curl -X POST "https://route.showapi.com/1624-1?appKey=YOUR_APPKEY" \
-H "content-type: application/x-www-form-urlencoded" \
-d "keyWords=%E6%AE%8B%E9%85%B7"
```
### 步骤 3 — 解析返回
返回体里 `showapi_res_body.result` 是一个数组,每个元素含 `words`(词名)与 `wordsDetail`(拼音+词性+释义)。把数组遍历打印即可。
## 返回示例与解析(真实返回,已精简)
```json
{
"showapi_res_code": 0,
"showapi_res_error": "",
"showapi_res_id": "6a990ad9fb638c8138888397",
"showapi_fee_num": 1,
"showapi_res_body": {
"ret_code": 0,
"result": [
{"words": "严酷", "wordsDetail": "[ yán kù ] (形)①严厉;严格:~的教训。②残酷;冷酷:~的剥削。"},
{"words": "冷酷", "wordsDetail": "[ lěng kù ] (形)对待别人冷漠残酷:~无情|手段~。"},
{"words": "凶恶", "wordsDetail": "[ xiōng è ] (形)(性情、行为、相貌)十分可怕。"}
]
}
}
```
| 字段 | 位置 | 说明 |
|------|------|------|
| `showapi_res_code` | 系统级 | 0 表示系统级成功 |
| `showapi_fee_num` | 系统级 | 本次消耗计量(免费接口=1) |
| `ret_code` | `showapi_res_body` 内 | 0 表示业务成功 |
| `result` | `showapi_res_body` 内 | **数组**,每个元素 `{words, wordsDetail}` |
| `words` / `wordsDetail` | `result[]` 元素内 | 词名 / 拼音+词性+释义 |
> 注意:文档把 `result` 标为 `String`,实测它是**数组**;`words`/`wordsDetail` 在数组元素内,不在 body 平级。详见[返回结构全解](https://www.showapi.com/guides/chinese-synonym-antonym-response-codes-1624)。
## 进阶 / 边界
- 想查反义词:把地址里的 `1624-1` 换成 `1624-2`,其余代码完全不变。
- 多义词:接口按词面返回关联词,不区分义项;如需精准释义,取 `wordsDetail` 中的分项(如"①…②…")自行裁剪。
- 无结果:返回 `result` 为空数组(`[]`),属正常情况,按"无近义/反义词"处理即可。
## FAQ
**Q1:这个接口真的免费吗?**
A:标注为"免费服务",不单独付费;但每次调用实测 `showapi_fee_num=1`,即从你的免费额度扣除 1 计量。额度用尽后需关注平台计费规则。
**Q2:近义词和反义词是同一个接口吗?**
A:是同一个 apiCode=1624,只是两个接入点:`1624-1` 返近义词,`1624-2` 返反义词,参数完全相同。
**Q3:必须用 POST 吗?GET 行不行?**
A:文档标注 POST/GET 均支持。示例用 POST + 表单,便于传参;GET 时把 `keyWords` 放到查询参数即可。
**Q4:返回里的 `ret_code` 和 `showapi_res_code` 有什么区别?**
A:`showapi_res_code` 是系统级状态码(网络/鉴权层),`ret_code` 在 `showapi_res_body` 内,是业务状态码。两者都为 0 才算真正成功。
**Q5:报错时怎么看原因?**
A:系统级失败看 `showapi_res_error`;业务失败(`ret_code` 非 0)看 `remark` 字段。文档未提供具体非零枚举值,统一按"非 0 即失败"处理。
## 相关能力 / 下一步阅读
- [中文近义词反义词 API:返回结构全解(ret_code 与 result 数组)](https://www.showapi.com/guides/chinese-synonym-antonym-response-codes-1624)
- [中文近义词反义词 API:近义词与反义词双接入点详解](https://www.showapi.com/guides/chinese-synonym-antonym-access-points-1624)
- **本系列共 8 篇**:查看[中文近义词反义词 API 使用指南总目录](https://www.showapi.com/guides/chinese-synonym-antonym-guides-1624)