2015-10-10 3 views
1

J'essaie de concevoir une API web simple en utilisant Spring. Il n'y a qu'un seul paramètre qui est un tableau de chaîne, le mon api pourrait ressemble à ceStyle de conception de paramètre Web Api

public String test(String[] pars){} 

ou il y a une autre façon, je prends juste une chaîne en tant que paramètre et divisé à l'aide d'un séparateur comme « ; » ou « : », la ma api serait ceci:

 public String test(String par){ 
     String pars = par.split(":"); 
     } 

Je veux juste connaître les avantages et les inconvénients de l'autre

Répondre

2

Votre première option est la meilleure pour de nombreuses raisons.

Le plus important est que la manière par défaut pour HTML/HTTP d'envoyer plusieurs valeurs pour le même paramètre est d'envoyer le paramètre plusieurs fois. Ceci est utilisé pour les cases à cocher et les listes d'options à sélection multiple dans les formulaires HTML.

Une autre bonne raison est que cela est pris en charge hors de la boîte au printemps WebMvc:

@Controller 
@RequestMapping("/test") 
public class TestController { 

    @RequestMapping(method = RequestMethod.GET) 
    public String test(@RequestParam("pars") String[] pars){} 
} 

Pour passer un tableau à ce que vous utilisez l'URL

http://yourhost/test?pars=par1&pars=par2&pars=par3 

Il est évident que les inconvénients de la seconde La méthode que vous avez suggérée est que ce n'est pas la façon standard dont HTML/HTTP communique les paramètres à valeurs multiples, et Spring WebMvc ne les prend pas en charge. L'avantage de la deuxième méthode pourrait être que l'URL serait un peu plus courte, ce qui est seulement un problème lorsque vous faites des requêtes GET, pas avec des requêtes POST. Mais si vous gardez le nom du paramètre court, ce n'est pas un problème majeur.