# API
# 介绍
我们的 API 遵循 RESTful 风格,通过 JWT (opens new window) 进行验证,接受 JSON 编码的请求,返回 JSON 编码的结果,并使用标准的 HTTP 状态码。
Base URL:
https://stage-api.soundlinks.net:2022/v3
# 身份验证
在使用以下 API 时,除非在说明里指出“无需验证”,其它情况一律需要在 request header 里带上 Authorization: Bearer {token}。调用此 API 来获取 token,过期时间为 30 天。
# 请求
POST /organization/token
请求参数
| 字段 | 类型 | 备注 |
|---|---|---|
| appId | string | APP ID |
| appKey | string | APP Key |
# 返回
| 字段 | 类型 | 备注 |
|---|---|---|
| token | string | JWT token |
# 编码音频
# 请求
该接口参数 file 仅接受音频文件的 URL,所以需要事先把待编码的音频上传到服务器(暂只支持 wav/mp3 格式的音频)。
由于测试服务器资源有限,建议使用时长小于 2 分钟的音频文件进行测试。
POST /sl/encoding
请求参数
| 字段 | 类型 | 备注 |
|---|---|---|
| file | string | 文件 URL |
| title | string | 文件名称 |
| artist | string | 作者名字(如测试用,可传任意值) |
| thumbnail | string | 封面 URL(如测试用,可传任意值) |
示例
curl --location --request POST 'https://stage-api.soundlinks.net:2022/v3/sl/encoding' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer <token>' \
--data-raw '
"file": "https://foo.com/bar.mp3",
"title": "bar-encoding",
"artist": "john lennon",
"thumbnail": "thumbnail.png"
}'
# 返回
| 字段 | 类型 | 备注 |
|---|---|---|
| error | string | 错误信息 |
| query | string | 查询凭证 |
| code | string | Soundlinks ID |
# 查询编码结果
由于完成编码需要几分钟时间,你可以用编码 API 返回的 query 字段查询音频的编码结果。
# 请求
GET /sl/encoding/progress/{query}
请求参数
| 字段 | 类型 | 备注 |
|---|---|---|
| query | string | 查询凭证 |
# 返回
返回的编码状态有以下可能:
- null
- processing
- complete
- failed
| 字段 | 类型 | 备注 |
|---|---|---|
| status | string | 编码状态 |
| encodedFile | string | 编码后的文件 URL |
# 解码音频
通过 URL 解码出音频中的 Soundlinks ID(暂只支持 wav/mp3 格式的音频)。
# 请求
POST /sl/decoding
请求参数
| 字段 | 类型 | 备注 |
|---|---|---|
| file | string | 文件 URL |
| callbackUrl | string | 解码完成后的回调地址 |
# 返回
| 字段 | 类型 | 备注 |
|---|---|---|
| id | string | 解码任务 ID |
待 Soundlinks 解码完成后,会把结果以 JSON 格式 POST 到指定的 callbackUrl。POST 内容中的 id 为解码任务 ID。
如果 callbackUrl 填写了 https://stage-api.soundlinks.net/v3,Soundlinks 将会保存解码结果,开发者可使用下面的 API 查询解码结果。
# 查询解码结果
通过“解码任务 ID”查询解码结果。
# 请求
GET /sl/decoding/job/{id}
请求参数
| 字段 | 类型 | 备注 |
|---|---|---|
| id | string | 解码任务 ID |
# 返回
| 字段 | 类型 | 备注 |
|---|---|---|
| id | string | 解码任务 ID |
| code | string | Soundlinks ID |
# 解析
将 Soundlinks ID 解析为可读数据。
# 请求
GET /sl/decoding/code/{id}
请求参数
| 字段 | 类型 | 备注 |
|---|---|---|
| id | string | Soundlinks ID |
# 返回
| 字段 | 类型 | 备注 |
|---|---|---|
| data0 | integer | 数据 0 |
| data1 | integer | 数据 1 |