Je lis que le chemin HTTP pour passer un tableau dans une requête est de définir un paramètre plusieurs fois:JAX-RS/Rest: définir un paramètre plusieurs fois ou utiliser un seul paramètre délimité par des virgules?
1) GET /users?orderBy=last_name&orderBy=first_name
Cependant, je l'ai vu aussi le paramètre délimité par des virgules (et je pense que c'est « plus propre «):
2) GET /users?orderBy=last_name,first_name
Je veux mettre en œuvre les utilisateurs multi-tri (commande par last_name, puis en double last_names sont commandés par prenom). Du point de vue du code, c'est facile (les bibliothèques de Google Guava à la rescousse), mais comment dois-je exposer cela? Est-ce que la première façon préserve même l'ordre des champs (tri par nom_de_famille, puis par prénom)?
Spring convertira par magie un paramètre dans un String [] tableau, si elle est définie à plusieurs reprises dans la demande:
... @RequestParam("orderBy") String[] orderBy ... becomes ["last_name","first_name"]
Cela me conduit à croire que la première voie est considérée comme la meilleure pratique, bien que je comme la deuxième façon ...
Cela dépend de qui vous avez obtenu votre @RequestParam. Il pourrait être spécifié dans la norme JAX-RS, cependant. – bmargulies