CRUD - Ordenação

Uma requisição utilizando o método GET do protocolo HTTP contra um recurso que esteja estendendo da classe AbstractREST com o parâmetro 'sort=' passado na query string retornará a quem solicitou o conjunto de dados ordenado de acordo com os campos informados no parâmetro 'sort='.

Um exemplo para esclarecer:

Temos uma aplicação com um recurso chamado User e uma classe chamada UserREST que estende de AbstractREST.

User.java

@Entity
public class User {

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)    
    private Long id;

    @Size(max = 100, min = 2)
    @Column(length = 100)
    @NotNull
    private String name;

    @Size(max = 100, min = 4)
    @Column(length = 100, unique = true)
    @NotNull
    private String email;

    // getters and setters
}

UserREST.java

@Path("users")
@Consumes({ MediaType.APPLICATION_JSON })
@Produces({ MediaType.APPLICATION_JSON })
@RequestScoped
public class UserREST extends AbstractREST<User, Long> {

    @Override
    @GET    
    public Result find() {
        return bc.find();
    }
}

Quando uma requisição do tipo GET do protocolo HTTP é enviada para o recurso de usuários

$ curl -XGET http://localhost:8080/api/users?sort=id,name&desc=email

A requisição acima irá retornar uma lista de usuários ordenado por 'id' e 'name' de forma crescente e o 'email' de forma decrescente.

Exemplos de requisições:

URL Retorno
users?sort=name Lista de usuários ordenado de forma crescente pelo campo 'name'
users?sort=id,name,email&desc Lista de usuários ordenados de forma decrescente seguindo a ordem dos campos 'id', 'name' e 'email'
users?sort=id,name,email&desc=name Lista de usuários respeitando a sequência definida, ou seja, 'id' crescente seguido por 'name' decrescente seguido por email crescente

results matching ""

    No results matching ""