Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/390.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java webapi参数设计风格_Java_Spring_Api - Fatal编程技术网

Java webapi参数设计风格

Java webapi参数设计风格,java,spring,api,Java,Spring,Api,我尝试使用Spring设计一个简单的web api。只有一个参数是字符串数组,MyAPI可能如下所示 public String test(String[] pars){} 或者还有另一种方法,我只是将一个字符串作为参数,并使用“;”或“:”之类的分隔符进行拆分,我的api是这样的: public String test(String par){ String pars = par.split(":"); } 我只想知道彼此的优缺点,你的第一个

我尝试使用Spring设计一个简单的web api。只有一个参数是字符串数组,MyAPI可能如下所示

   public String test(String[] pars){}
或者还有另一种方法,我只是将一个字符串作为参数,并使用“;”或“:”之类的分隔符进行拆分,我的api是这样的:

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

我只想知道彼此的优缺点,你的第一个选择是最好的,原因有很多

最重要的一点是,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传递多值参数的标准方式,SpringWebMVC也不支持这种方式

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