You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Liferay 7.0自定义表单数据的REST调用访问方法问询

在Liferay 7.0中通过REST访问自定义表单数据的方案

当然可以直接通过REST调用来访问Liferay 7.0里的自定义表单数据,完全不需要额外构建Spring相关组件!下面给你详细拆解实现步骤:

一、确认Liferay自带的REST API支持

Liferay 7.0已经内置了Headless Delivery API,其中包含了专门用于操作表单及表单提交数据的端点,足以满足你按日期范围查询表单数据的需求。

二、具体操作步骤

1. 先完成API认证

访问Liferay的REST接口需要权限验证,常用的方式是获取OAuth2访问令牌(生产环境推荐),测试环境也可以临时用Basic Auth。
比如用curl命令获取OAuth2令牌:

curl -X POST -u "YOUR_CLIENT_ID:YOUR_CLIENT_SECRET" "http://your-liferay-domain/o/oauth2/token" -d "grant_type=password&username=your-admin-account&password=your-password"

执行后会返回包含access_token的JSON,后续请求都要带上这个令牌。

2. 获取目标表单的ID(formInstanceId)

你需要先拿到名为"applications"的表单的实例ID,有两种方式:

  • 直接在Liferay控制面板的表单管理页面,找到该表单后查看详情获取ID;
  • 或者通过REST端点查询所有表单实例:
curl -H "Authorization: Bearer YOUR_ACCESS_TOKEN" "http://your-liferay-domain/o/headless-delivery/v1.0/forms"

返回的结果里会包含每个表单的id字段,也就是我们需要的formInstanceId。

3. 按日期范围查询表单提交数据

拿到表单ID后,就可以调用表单提交数据的查询接口,通过filter参数筛选特定日期范围的记录:

情况1:按系统记录的提交时间筛选

如果是要筛选表单的提交时间(Liferay自动记录的dateCreated字段)在指定范围内的数据,请求命令如下:

curl -H "Authorization: Bearer YOUR_ACCESS_TOKEN" "http://your-liferay-domain/o/headless-delivery/v1.0/forms/{formInstanceId}/form-submissions?filter=dateCreated ge '2017-03-01' and dateCreated le '2017-03-10'"

情况2:按用户提交的date字段筛选

如果是要筛选用户在表单里填写的date字段值在指定范围内的数据,调整filter参数即可:

curl -H "Authorization: Bearer YOUR_ACCESS_TOKEN" "http://your-liferay-domain/o/headless-delivery/v1.0/forms/{formInstanceId}/form-submissions?filter=fields/date ge '2017-03-01' and fields/date le '2017-03-10'"

三、特殊场景的补充说明

如果自带的Headless API无法满足你的复杂业务需求(比如自定义数据转换、特殊权限控制),再考虑通过Liferay的OSGi组件结合Spring MVC来开发自定义REST端点,但绝大多数场景下,内置的API已经足够解决问题。

内容的提问来源于stack exchange,提问作者TechCrap

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 04:18:53