客户端接入
接入 Apifox
用 Apifox 管理、调试、Mock 和自动化测试 CokeAPI 接口。
Apifox 是 API 文档、调试、Mock、自动化测试一体化工具。把 CokeAPI 配成 Apifox 项目后,可以直接在团队里共享接口文档、在线调试模型、保存测试用例,并用自动化测试检查模型线路是否可用。
适合场景
| 场景 | 推荐做法 |
|---|---|
| 团队共享 API 文档 | 导入 OpenAPI 或手动创建 /v1/chat/completions |
| 调试模型参数 | 在“运行”里切换 model、messages、stream |
| 验证 Key 和模型可用性 | 给状态码、响应字段和 usage 加断言 |
| 发布给客户/同事 | 使用 Apifox 的在线文档发布功能 |
| CI 定时巡检 | 用 Apifox 自动化测试或 Apifox CLI 跑用例 |
创建环境
在 Apifox 项目里进入 项目设置 → 环境管理,新增环境:
| 变量 | 值 |
|---|---|
base_url | https://cokeapi.com |
api_key | sk-xxxxxxxx |
chat_model | gpt-5.5 |
claude_model | claude-sonnet-4-6 |
free_model | free/groq/llama-3.3-70b-versatile |
不要把真实 API Key 写进公开文档。团队协作时建议每个成员使用自己的私有环境变量。
配置鉴权
在项目或接口级别设置 Bearer Token:
| 配置项 | 值 |
|---|---|
| 鉴权类型 | Bearer Token |
| Token | {{api_key}} |
等价请求头:
Authorization: Bearer {{api_key}}
Content-Type: application/json
Accept: application/jsonChat Completions 接口
新建接口:
| 项目 | 值 |
|---|---|
| 名称 | Chat Completions |
| Method | POST |
| URL | {{base_url}}/v1/chat/completions |
| Content-Type | application/json |
请求参数
| 参数 | 类型 | 必填 | 默认值 | 说明 |
|---|---|---|---|---|
| model | string | 是 | — | 模型 ID,例如 gpt-5.5、claude-sonnet-4-6、free/groq/llama-3.3-70b-versatile |
| messages | array | 是 | — | 对话历史 [{ role, content }] |
| stream | bool | 否 | false | 是否返回 SSE 流式响应 |
| temperature | number | 否 | 1 | 采样温度,范围通常为 0–2 |
| top_p | number | 否 | 1 | 核采样参数 |
| max_tokens | int | 否 | — | 最大生成 token 数 |
| response_format | object | 否 | — | JSON 输出格式,例如 { "type": "json_object" } |
| tools | array | 否 | — | OpenAI function calling 工具定义 |
| tool_choice | string/object | 否 | auto | 控制模型是否调用工具 |
| user | string | 否 | — | 业务侧最终用户 ID,便于审计 |
请求示例
{
"model": "{{chat_model}}",
"messages": [
{
"role": "system",
"content": "你是简洁的助手"
},
{
"role": "user",
"content": "用一句话介绍 CokeAPI"
}
],
"stream": false
}响应示例
{
"id": "chatcmpl-01HX...",
"object": "chat.completion",
"created": 1714200000,
"model": "gpt-5.5",
"choices": [
{
"index": 0,
"message": {
"role": "assistant",
"content": "CokeAPI 是兼容 OpenAI 协议的多模型 AIGC 网关。"
},
"finish_reason": "stop"
}
],
"usage": {
"prompt_tokens": 28,
"completion_tokens": 32,
"total_tokens": 60
}
}流式调试
Apifox 可以发起 stream=true 请求,但普通 JSON 响应校验不适合 SSE。建议准备两个用例:
| 用例 | stream | 用途 |
|---|---|---|
chat-json | false | 日常调试、字段断言、自动化测试 |
chat-stream | true | 手动验证流式输出是否连通 |
流式请求体:
{
"model": "{{chat_model}}",
"messages": [
{
"role": "user",
"content": "讲一个三句的笑话"
}
],
"stream": true
}图片输入
视觉模型使用 OpenAI 风格的 image_url 内容块。建议先通过 文件上传接口 获取 URL,再在 Apifox 请求体中引用。
{
"model": "gpt-4o-mini",
"messages": [
{
"role": "user",
"content": [
{
"type": "text",
"text": "描述这张图片"
},
{
"type": "image_url",
"image_url": {
"url": "https://cdn.cokeapi.com/uploads/example.jpg"
}
}
]
}
]
}GPTs / Gizmo 模型
如果后台已启用 GPTs/Gizmo 路由,可以按参考页的格式填写模型名:
| ChatGPT GPTs URL | Apifox 中填写的 model |
|---|---|
https://chatgpt.com/g/g-B3hgivKK9-write-for-me | gpt-4-gizmo-g-B3hgivKK9 |
未启用对应路由时会返回 model not configured,请以 GET /v1/models 返回的模型 ID 为准。
自动化测试断言
建议为 chat-json 用例添加断言:
| 断言 | 期望 |
|---|---|
| HTTP 状态码 | 200 |
$.object | chat.completion |
$.choices[0].message.role | assistant |
$.choices[0].message.content | 非空 |
$.usage.total_tokens | 大于 0 |
常见失败判断:
| 状态 | 含义 | 处理 |
|---|---|---|
| 401 | API Key 无效 | 检查 {{api_key}} |
| 403 | Key scope 不包含 chat | 给 Key 开启 chat scope |
400 model not configured | 模型名不存在 | 使用 GET /v1/models 中的模型 ID |
| 429 | 限流或配额耗尽 | 降低频率或更换 Key |
| 502 | 上游账号池不可用 | 稍后重试或检查后台账号池 |
OpenAPI 导入(推荐)
CokeAPI 提供官方全量 OpenAPI 3.1 规范,覆盖全部 /v1 接口(Chat / Responses / Messages / 图像 / 视频 / 任务查询 / 文件上传),含模型 ID 枚举、请求响应示例和错误码:
https://doc.cokeapi.com/openapi.json在 Apifox 中操作:
- 项目设置 → 导入数据 → OpenAPI/Swagger → URL 导入,粘贴上面的地址
- 勾选 定时同步,CokeAPI 更新接口后 Apifox 项目自动跟进
- 导入后在环境里把
api_key填成自己的 Key,即可对任意接口点「运行」在线调试
导入完成后,左侧接口树会按 Models / Chat / Images / Videos / Tasks / Files 分组,每个接口都带可直接运行的请求示例。