首页 > 解决方案 > 使用分页和多个过滤器为数据库查询构建 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;
}

这是正确的方法还是有更好的方法来做到这一点?我是休息框架的新手。

标签: javarestjerseydropwizard

解决方案


推荐阅读