跳到主要内容

开发

简介

开发模式使用 luwak-dev-linux,开放接口允许在线修改 luwak_sys.db。

Luwak 在启动时,自动创建 lib/luwak_sys.db 文件,该文件保存了业务脚本源码、数据库表信息。

你可以使用在线的 Web 版本 Toolkit,也可以使用 Toolkit 导出到本地文件,开发测试完成后再导入到 luwak_sys.db。

数据隐私
  • Toolkit 不支持云同步功能,所有数据都在你设备上的 luwak_sys.db 中。
  • Luwak 接入的配置信息都在你本地的浏览器中。

为方便调试,可在开发期间配置 Luwak 禁用校验签名、检查时间戳范围。

后端

定义 Entity

初始化

curl -X GET --location "http://localhost:23000/entity/generate" \
-H "X-Api-Key: your_api_key"

首次使用时上述操作会针对所有表自动生成 Entity 定义。

在实际的应用场景中,并不是所有的表都需要定义 Entity,也可能使用了逻辑名字映射真实名字。后继的开发中需要通过 WebUI Toolkit 手工维护。

内置的预定义 API 命名规则是 {$entityName}.{$suffix}

定义 API

访问级别包括 Public, Private(必须传 token, Luwak 校验 token 并初始化 session)

  • status: draft, online, deprecated, offline 提示未发布、弃用、下线
  • enabled: 1, 0 相当于软删除,提示 410
  • access_level: public, private 相当于 session check 是否必须传token
  • execute_global_script: 1, 0 默认 1 是否执行全局脚本。

更多参考 Luwak API 规范

前端

生成 TypeScript 类型定义

为指定的数据库中全部表生成类型定义

curl -X GET --location "http://localhost:23000/typescript/generate/your_db_name" \
-H "X-Api-Key: your_api_key"

指定表

curl -X GET --location "http://localhost:23000/typescript/generate/your_db_name/your_table_name" \
-H "X-Api-Key: your_api_key"

Refine Data Provider

Refine Data Provider method 和 Luwak API 的对应表

Required Methods

Refine MethodLuwak APIDescription
getListselectgetList方法用于获取具有排序、过滤和分页功能的资源列表。
它以resourcesorterspaginationfilters作为参数。
并且它返回datatotal字段。
createaddcreate方法使用resourcevariables参数创建一条新记录。
updatesetupdate方法使用resourceidvariables参数更新一条记录。
deleteOnedeldeleteOne方法使用resourceid参数删除一条记录。
getOnegetgetOne方法通过resourceid参数获取一条记录。

Tips: 根据多列主键获取一条记录可用 getByUK

Optional Methods

Refine MethodLuwak APIDescription
getManygetBatchgetMany方法使用resourceids参数获取多条记录。
createManyaddBatch在资源中创建多条记录。
deleteManydelBatch删除资源中的多条记录。
updateManysetBatch更新资源中的多条记录。

Tips: 也可以使用 getBatchById 和 setBatchhById

参考 Refine Data Provider