Version: 1.0.0
MySQL RESTful API
功能介绍
这里给出了调用 mysql 所有操作的API,以及每个API的参数参考。
请求域名
支持以下三种域名访问方式:
https://{envId}.api.tcloudbasegateway.com/v1/rdb/rest/{table}https://{envId}.api.tcloudbasegateway.com/v1/rdb/rest/{schema}/{table}https://{envId}.api.tcloudbasegateway.com/v1/rdb/rest/{instance}/{schema}/{table}
- envId 是环境id
- instance 是数据库实例标识
- schema 是数据库名
- table 是表名
如果使用系统数据库,推荐方式 1
接入指引
调用以下接口需要传递 AccessToken,格式如Authorization: Bearer <token>。Token 获取方式参考:https://docs.cloudbase.net/http-api/basic/access-token
请求编码
当发起请求前请进行 url 编码,如:
原始请求
curl -i -X GET 'https://{{host}}/v1/rdb/rest/course?select=name,position&name=like.%张三%&title=eq.文章标题'编码后请求
curl -i -X GET 'https://{{host}}/v1/rdb/rest/course?select=name,position&name=like.%%E5%BC%A0%E4%B8%89%&title=eq.%E6%96%87%E7%AB%A0%E6%A0%87%E9%A2%98'
请求头和返回头
| 请求头 | 参数 | 说明 | 示例 |
| Accept | 支持 `application/json`、`application/vnd.pgrst.object+json` | 控制数据返回格式 | Accept: application/json |
| Content-Type | 支持 `application/json`、`application/vnd.pgrst.object+json` | 返回 | Content-Type: application/json |
| Prefer | 操作依赖的特征值 | - `return=representation` 写操作,返回数据体和数据头 - `return=minimal` 写操作,不返回数据体只返回头,写操作默认类型 - `count=exact` 读操作,指定 count 计数 - `resolution=merge-duplicates` upsert操作,合并冲突项 - `resolution=ignore-duplicates` upsert操作,忽略冲突项 | Prefer: return=representation |
| Preference-Applied | 使用请求时Prefer的类型 | 返回信息使用请求时的Prefer,会将对应的特征信息以此返回,某些情况下会有默认值 | Preference-Applied: return=representation |
| Content-Range | 分页信息 | - 当查询时指定 Prefer: count=exact 时会返回分页信息入 0-1/2,其中0表示起始位,1表示偏移量,2表示总数 (注意,此处的起始位、偏移量并非 mysql 中的 offset、limit关键字含义,而是指查询后的数据位置,通常配合 limit 使用) - 当写操作时指定 return=representation 或 return=minimal (默认) 时,会返回分页信息,如 *-*/2,其中2表示受影响行数 | Content-Range: 0-1/2 |
错误码与 HTTP 状态码
| 错误码 | HTTP状态码 | 说明 |
| INVALID_PARAM | 400 | 请求参数无效 |
| INVALID_REQUEST | 400 | 请求内容无效:缺少权限字段、执行SQL异常等 |
| INVALID_REQUEST | 406 | 不符合单条记录返回约束 |
| PERMISSION_DENIED | 401、403 | 鉴权失败:如果身份认证失败返回 401,如果鉴权失败返回403 |
| RESOURCE_NOT_FOUND | 404 | 未找到数据库实例或表信息 |
| SYS_ERR | 500 | 系统内部错误 |
| OPERATION_FAILED | 503 | 建立数据库连接失败 |
| RESOURCE_UNAVAILABLE | 503 | 数据库由于某些原因导致不可用 |
数据返回
- 所有 POST、PATCH、DELETE 一样,请求头带
Prefer: return=representation表示有返回体,不带表示无回包只有返回头 - POST、PATCH、DELETE 的返回体通常是json array类型
[],如果请求头指定了Accept: application/vnd.pgrst.object+json,那么会返回json object类型{} - 如果指定
Accept: application/vnd.pgrst.object+json,但是数据是大于 1 的量,则会报错