# Muyan 低代码开发平台 API 文档
默认情况下,如果您按照 此文档 进行安装,API 依赖已经在服务器文件夹下的 build.gradle 文件中配置好了。
请参考 Javadoc 参考 (opens new window) 获取详细的 API 文档。
# 公开 API
我们的公开 API 设计与平台版本解耦。这种解耦确保了内部平台结构的变化不会必然影响公开 API,为使用我们 API 的开发者提供稳定性和向后兼容性。
这种解耦的主要优势包括:
- 版本独立性:公开 API 可以维护自己的版本控制方案,与平台的内部版本控制分开。
- 稳定性:可以对内部平台实现进行更改,而不影响公开 API 接口。
- 灵活性:允许公开 API 逐步演进,而无需对平台核心进行即时更改。
- 向后兼容性:即使平台在不断发展,也可以支持旧版本的 API。
这种方法使我们能够不断改进和更新平台,同时为 API 用户维护一个一致且可靠的接口。
# 目录
- StorageUtils
- QueryHelper
- SimpleQuery
- DomainHelper
- BeanContainer
- AsyncHelper
- MessageSeverity
- MessageHelper
# StorageUtils
用于处理文件存储操作的工具类。
# 方法
# createStorageFileDomain
public static StorageFieldValue createStorageFileDomain(String fileName, String mimeType, InputStream inputStream)
创建一个代表系统中文件的 StorageFieldValue
对象。
- 参数:
fileName
:要存储的文件名mimeType
:文件的 MIME 类型inputStream
:包含文件数据的输入流
- 返回: 代表存储文件的
StorageFieldValue
对象
# QueryHelper
提供使用 Groovy 的 Sql 类执行数据库查询的方法。
# 方法
# withSession
public static <T> T withNewSession(Closure<T> closure)
在新的数据库会话上下文中执行闭包。
# withTransaction
public static <T> T withTransaction(Closure<T> closure)
使用现有数据库会话在事务上下文中执行闭包。
# SimpleQuery
用于执行数据库查询的简单查询类。
SimpleQuery.of("WorkTask")
.ge("scheduledStartTime", start)
.listAll();
2
3
此查询检索所有计划开始时间大于或等于指定开始时间的 WorkTask 实体。
您还可以将多个条件链接在一起:
SimpleQuery.of("WorkTask")
.eq("assignee", user)
.ge("scheduledStartTime", start)
.lt("scheduledEndTime", end)
.eq("status", "ACTIVE")
.listAll();
2
3
4
5
6
在上面的示例中:
"assignee"
是 WorkTask 的指派用户,确保使用相关的object
而不是object.id
作为匹配条件。"WorkTask"
是 DomainClass 的简称。"scheduledStartTime"
是 DomainClass 中字段的名称。
此查询检索所有满足以下条件的 WorkTask 实体:
- 计划开始时间大于或等于指定开始时间
- 计划结束时间小于指定结束时间
- 状态为 "ACTIVE"
# 方法
提示
对于对象类型 (DOMAIN_OBJECT
) 的字段,应使用 object
而不是 object.id
作为匹配条件。
# eq(String fieldName, Object value)
添加相等条件到查询。
# ne(String fieldName, Object value)
添加不相等条件到查询。
# gt(String fieldName, Object value)
添加大于条件到查询。
# ge(String fieldName, Object value)
添加大于或等于条件到查询。
# lt(String fieldName, Object value)
添加小于条件到查询。
# le(String fieldName, Object value)
添加小于或等于条件到查询。
# iLike(String fieldName, String value)
添加不区分大小写的模糊匹配条件到查询。
# notILike(String fieldName, String value)
添加不区分大小写的不模糊匹配条件到查询。
# in(String fieldName, Collection<?> value)
添加 "in" 条件到查询。
# notIn(String fieldName, Collection<?> value)
添加 "not in" 条件到查询。
# isNull(String fieldName)
添加 "is null" 条件到查询。
# notNull(String fieldName)
添加 "not null" 条件到查询。
# get()
执行查询并返回单个结果。
# list(int offset, int limit)
执行查询并返回分页结果。
# list(int offset, int limit, List<String> orderBy)
执行查询并返回带排序的分页结果。
# list(int offset, int limit, List<String> orderBy, boolean asc)
执行查询并返回带排序和排序方向的分页结果。
# listAll()
执行查询并返回所有结果。
# static SimpleQuery<?> of(String domainName)
为指定域创建新查询。
# static <T> SimpleQuery<T> of(Class<T> clazz)
为指定类创建新查询。
# static <T> SimpleQuery<T> of(Class<T> clazz, boolean and)
为指定类创建新查询,并指定逻辑运算符。
# static Object getById(String domainName, Long id)
通过 ID 检索指定域的实体。
# static <T> T getById(Class<T> clazz, Long id)
通过 ID 检索指定类的实体。
# static List<Object> getByIds(String domainName, List<Long> ids)
通过 ID 列表检索指定域的实体列表。
# static <T> List<T> getByIds(Class<T> clazz, List<Long> ids)
通过 ID 列表检索指定类的实体列表。
# static List<Object> getAll(String domainName)
检索指定域的所有实体。
# static <T> List<T> getAll(Class<T> clazz)
检索指定类的所有实体。
# DomainHelper
提供域对象操作的实用方法。
# 方法
# buildDomain
public static Object buildDomain(String domainName)
public static Object buildDomain(String domainName, Object properties)
2
使用给定的名称和可选属性构建域对象。
# createDomain
public static void createDomain(Object requestData)
使用给定的请求数据创建域对象。
# updateDomain
public static void updateDomain(Object requestData)
使用给定的请求数据更新域对象。
# deleteDomain
public static void deleteDomain(Object requestData)
使用给定的请求数据删除域对象。
# BeanContainer
管理和检索 bean 实例。
# 方法
# getBean
public static <T> T getBean(Class<T> beanClass)
通过类型检索 bean 实例。
# getBeansOfType
public static <T> Collection<T> getBeansOfType(Class<T> beanClass)
通过类型检索 bean 集合。
# registerBean
static void registerBean(Object bean)
在容器中注册 bean 实例。
# AsyncHelper
提供异步任务执行的实用方法。
# 方法
# scheduleAtFixRate
public static Runnable scheduleAtFixRate(long period, Runnable runnable)
安排任务以固定速率定期运行。
# task
public static void task(Runnable runnable)
public static void task(boolean newThread, Runnable runnable)
2
异步执行任务,保持当前上下文(例如,租户信息)。
# MessageSeverity
表示消息不同严重级别的枚举。
# 枚举值
INFO
WARNING
ERROR
IMPORTANT
INTERNAL
ACTION_REQUIRED
# 方法
# getLabel
返回与严重级别相关联的标签。
# get
static MessageSeverity get(String label)
执行反向查找,从标签获取 MessageSeverity 枚举值。
# MessageHelper
MessageHelper
是平台中用于处理消息相关操作的工具类。它提供了推送通知和管理消息相关任务的方法。
# 依赖
tech.muyan.domain.Notification
# 方法
# pushNotification
public static void pushNotification(Notification notification)
向平台推送通知。
# 参数
notification
:要推送的Notification
对象。
# 抛出
IllegalStateException
:如果在没有适当的平台实现的情况下调用该方法。
# 注意
此方法旨在由平台实现动态提供。tech.muyan:api
库不应包含在运行时中。
# 使用示例
Notification notification = new Notification();
notification.setContent("收到新消息");
notification.setToUserName("john.doe");
notification.setSeverity(MessageSeverity.INFO);
try {
MessageHelper.pushNotification(notification);
} catch (IllegalStateException e) {
// 处理平台实现不可用的情况
System.err.println("平台实现不可用:" + e.getMessage());
}
2
3
4
5
6
7
8
9
10
# 相关类
tech.muyan.domain.Notification
:表示系统中通知的结构 Java Doc (opens new window)。tech.muyan.enums.MessageSeverity
:表示消息不同严重级别的枚举 Java Doc (opens new window)。
← 🎨 显示风格及 SSO 🔌 插件开发 →