Я строю службу отдыха.Мой сервисный метод Resource выглядит следующим образом:
public Response<List<AuditEvent>> getAuditEvents(@QueryParam("filters") List<AuditRequest.Filter> filters,
@QueryParam("orderBy") @DefaultValue("id") String order,
@QueryParam("isDesc") @DefaultValue("true") boolean desc,
@QueryParam("startTime") long startTimestamp,
@QueryParam("endTime") long endTimestamp,
@QueryParam("limit") @DefaultValue("20") int size,
@QueryParam("offset") @DefaultValue("0") int startIndex)
Здесь фильтры могут иметь несколько выражений, например:
/api/audit/query/?filters=username='admin'&filters=customerId=1&limit=1&orderBy=rowId&isDesc=false&offset=2
Я также создал класс Filter:
public static class Filter {
private String propertyId;
private String op;
private Object value;
}
Пожалуйста, предложите мне хороший подход для преобразования List<String>
, получаемого в методе Resource, в List<Filters>
, а также проверки правильности каждого выражения String.По сути, мне нужен анализатор для преобразования этого строкового выражения в мой объект фильтра, где оператор может быть любым допустимым оператором.