2015-10-10 37 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請求時的問題。但是如果你保持參數名稱短,這不是一個主要問題。