简介 #
通过使用 Methodot 中的中间件定义,您可以很方便的将部署在任意位置的状态型中间件引入 Methodot 的应用中。而数据库组件,则为关系型数据库的中间件提供了更加简便的使用方式。
通过创建数据库组件,您可以立即得到一套实时可用的数据 API 接口,并在任意位置进行调用。
准备 #
数据库 #
在使用数据库组件之前,您需要先准备一个已经可以正常访问使用的 MySQL 服务。或者,您也可以在应用商店中创建一个临时数据库来试用该功能。
中间件 #
当您已经准备好数据库,就可以使用中间件功能了。
在 Methodot 的应用工厂中,每一个项目都可以定义该项目所使用的中间件,这里以 MySQL 作为示例,您需要先准备如下信息:
- 可以被 Methodot 访问的 MySQL 公网地址,以及网络端口
- 可以访问该数据库的用户名和密码
- MySQL 中任一 Database 的名称
创建中间件的操作步骤如下:
- 在项目的左侧菜单中,点击中间件,进入中间件页面
- 点击『创建中间件』
- 根据提示填写中间件相关信息,完成创建
设计 #
在数据库与中间件准备完成后,就可以开始使用 DB 组件了。
在已创建中间件的项目中,进入设计界面,编辑架构图,拖拽左侧『DB 组件』进入画布中,进入创建界面。
根据提示完成创建后,DB 组件会自动识别数据库中的数据信息,并生成对应的 API。
查看 #
选中 DB 组件,在右侧菜单中点击 DB 编辑,即可进入 DB 编辑界面。DB 组件会自动识别数据库中的数据信息,并生成对应的 API。
DB 编辑界面如下图:
- 左侧为该数据库中所有的数据表,点击可切换数据表
- 右侧可查看该表中的所有数据
- 点击查看 API 按钮,可以查看 DB 组件为该数据表生成的所有 API
API #
DB 组件创建成功后,会自动为当前数据表生成可立即使用的 Restful API。
参数 | 介绍 |
---|---|
uuid | 该 ID 为 DB 组件唯一 ID,在创建 DB 组件时,会自动生成,可以在 API 文档中进行查看。 |
table | 即该 DB 组件中所接入的数据表名称。 |
id | 即当前数据表中主键的值,DB 组件会自动识别数据表中的主键,作为查询 ID。 |
鉴权 #
为了确保数据的安全性,在 DB 组件创建完成后,会自动为可访问的 API 生成鉴权凭证,该凭证可以在 DB 组件 - DB 编辑 - 查看 API
中进行查看。
使用下方 API 时,均需在请求的 Header 中携带如下信息才可以正常使用:
Key | Value |
---|---|
Authorization | {TOKEN} |
如若该凭证不慎遗失,可以随时在查看界面进行重置,重置后,原凭证将被销毁,仅新凭证可继续使用。
[查询]多行数据 #
Method | API Path |
---|---|
GET | /api/{uuid}/{table} |
Query 参数 | 使用方式 |
---|---|
fields | 可选,当填入列名后,返回数据仅包括列名,如有多个列名,则以 , 分隔 |
size | 可选,分页字段,可控制当前返回的数据数量,默认返回 100 条 |
page | 可选,分页字段,需配合 size 字段使用,表示第几页,默认为 0 |
示例
如图中 DB 组件,以每页 3
条查询第 2
页的数据,且只需要 fruit_id
和 name
:
[GET] /api/some-uuid/fruit?page=1&size=3&fields=fruit_id,name
// Response
[
{
"fruit_id": 1,
"name": "Apple"
},
{
"fruit_id": 2,
"name": "Pear"
},
{
"fruit_id": 3,
"name": "Orange"
}
]
[查询]单行数据 #
Method | API Path |
---|---|
GET | /api/{uuid}/{table}/{id} |
示例
如图中 DB 组件,查询 fruit_id
为 1
的数据:
[GET] /api/some-uuid/fruit/1
// Response
{
"fruit_id": 1,
"name": "Apple",
"variety": "Red Delicious"
}
[查询]数据行数 #
Method | API Path |
---|---|
GET | /api/{uuid}/{table}/count |
示例
如图中 DB 组件,查询 fruit
中的数据总数量:
[GET] /api/some-uuid/fruit/count
// Response
12
[新增]数据 #
Method | API Path | Header |
---|---|---|
POST | /api/{uuid}/{table} | Content-Type: application/json |
示例
如图中 DB 组件,如图中 DB 组件,新建多行数据:
可访问 [POST] /api/some-uuid/fruit
// Request body
[
{
"name": "Any Fruit 2",
"variety": "Any Variety"
},
{
"name": "Any Fruit 3",
"variety": "Any Variety"
}
]
// Response
[
{
"fruit_id": 12,
"name": "Any Fruit 2",
"variety": "Any Variety"
},
{
"fruit_id": 13,
"name": "Any Fruit 3",
"variety": "Any Variety"
}
]
[更新]单行数据 #
Method | API Path | Header |
---|---|---|
POST | /api/{uuid}/{table}/{id} | Content-Type: application/json |
示例
如图中 DB 组件,修改 fruit_id
为 13
的数据中的 name
信息:
[PUT] /api/some-uuid/fruit/13
// Request body
{
"name": "Other Fruit"
}
// Response
{
"fruit_id": 13,
"name": "Other Fruit",
"variety": "Any Variety"
}
[删除]单行数据 #
Method | API Path |
---|---|
DELETE | /api/{uuid}/{table}/{id} |
示例
如图中 DB 组件,删除 fruit_id
为 13
的数据:
[DELETE] /api/some-uuid/fruit/13
// Response
1 // 实际删除了 1 条数据
[删除]多行数据 #
Method | API Path |
---|---|
DELETE | /api/{uuid}/{table} |
Query 参数 | 使用方式 |
---|---|
primary_key | 必填,当前数据表的主键名称 |
id_comma | 必填,主键的值,以 , 分隔 |
示例
如图中 DB 组件,删除 fruit_id
为 14
和 15
的数据:
[DELETE] /api/some-uuid/fruit?primary_key=fruit_id&id_comma=12,13
:
// Response
1 // 实际删除了 1 条数据