java - 使用分页和多个过滤器为数据库查询构建 GET Rest API
问题描述
我正在构建一个 GET 服务来从数据库中获取数据并在 UI 上显示。可以使用多个过滤器子句获取数据,我也需要分页。如何在 Jersy DropWizard 框架中做到这一点?
我想这样做:
路径:/data/?username=val1entity&=val2&limit=10&offset=0
@Path("/audit")
@Produces(value = MediaType.APPLICATION_JSON)
@GET
public Response<List<AuditEvent>> getAuditEvents(@Context UriInfo uriInfo) {
logger.info("get Audit Events");
try {
MultivaluedMap<String,String> queryParams = uriInfo.getQueryParameters();
return new Response<>(
Response.Status.OK, "List of Audit Eents",
auditService.getAuditEvents(queryParams));
} catch (Exception e) {
}
}
public List<AuditEventDB.AuditEvent> getAuditEvents(MultivaluedMap<String,String> queryParams) {
List<AuditEventDB.AuditEvent> auditEvents = new ArrayList<>();
try {
auditEvents = auditEventDB.getAllAuditEvents();
}
catch(Exception e)
{
logger.info("Error in Getting Audit Events" ,e);
}
return auditEvents;
}
这是正确的方法还是有更好的方法来做到这一点?我是休息框架的新手。
解决方案
推荐阅读
- java - Apache POI 在时间写入文件中的性能
- apt-get - 如何使用 curl 下载 .deb 包并更新 apt-get 存储库以使用 apt-get install 安装它
- python - 从 PyQt GUI 连接到串口
- php - 从多维数组中计数
- typescript - 在 typescript 3 中导出/导入 const
- python - asyncio:如何在不强制完全暴露于 asyncio 的情况下组合同步代码
- jenkins - MSB4166 间歇性构建中断:子节点“#”过早退出。VS 15.9
- javascript - 如何获取元标记内容值并将它们平均
- java - 如何使用 Tink 轻松加密和解密字符串?
- python - 创建一个 0 和 1 的板(Numpy 2D 数组)