2015-10-10 32 views
1

我试着用Spring设计一个简单的web api。只有一个参数是一个字符串数组,在我的API可能看起来像这样Web Api参数设计风格

public String test(String[] pars){} 

或有另一种方式,我只取一个字符串作为参数,并使用像一个分隔符分开“;”或“:”我的API会是这样:

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

我只是想知道对方

回答

2

利弊,第一种就是最好的原因是多方面的。

最重要的一点是,HTML/HTTP为同一参数发送多个值的默认方式是多次发送该参数。这用于HTML表单中的复选框和多选选项列表。

另一个很好的理由是,这是由Spring WebMvc支持开箱即用:

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

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

要传递一个数组到这一点,你使用的URL

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

显然,第二的缺点您建议的方法是,这不是HTML/HTTP传递多值参数的标准方式,Spring WebMvc也不支持它。

第二种方法的优点可能是URL会稍微短一些,这只是当您执行GET请求时,而不是POST请求时的问题。但是如果你保持参数名称短,这不是一个主要问题。