使用RESTful风格api命名接口时,GET方法怎么传递多个参数
JAVA小咖秀
共 660字,需浏览 2分钟
· 2021-09-14
![](https://filescdn.proginn.com/5ebf6b48e06d65901223ff7ab357f5f2/4f8d78f173af0543f673f37becfd58bd.webp)
对于普通形式命名的接口,假设需要传入lessonId、lessonType2个必选项,在controller传入参数时,可以写成下图的形式:
![](https://filescdn.proginn.com/fcdf00e452cc33f7201186d030cb6319/42491b82f579b5ba8d4b68c90ad4f825.webp)
但是对于RESTful风格的url,传入参数是应该用到@PathVariable注解,示例解析如下:
![](https://filescdn.proginn.com/7a53f1b4e4d9b17c266ee91a69406a41/5a08f77736b526fe78489d14f007f76a.webp)
那么对于传入传入lessonId、lessonType2个必选项时,用@PathVariable
注解的话,应该写成:
![](https://filescdn.proginn.com/1598b1039c4ac81d0c2bdc78d8c81fe3/c6cef38886de19bf5e9f825a5acffd8f.webp)
调用之后的结果显示成功。
![](https://filescdn.proginn.com/2e8e3d6c9c38525d422d149c26ed6119/e05ca14200e48a44548bc2e96347a98e.webp)
但是,还有一种情况,假如传入的参数有的是非必选项,那么应该把可能出现的url在声明时全部列出来,并且把@PathVariable
注解配置的参数设置为非必选(required=false),如下图:
![](https://filescdn.proginn.com/b742ffe0ca488d5a7142167648a779d2/621b3535e7239c5871ba575286134a02.webp)
调用之后结果如下:
![](https://filescdn.proginn.com/93766b3e2d8cfc83b04d3a738f198484/9fb14a82a97b3be36c6c456a5e0d86e4.webp)
由此可见,对于RESTful风格的接口,当查询接口需要传入一个或者两个参数的时候,编码起来较为简单,但是当传入3个以上参数的手,要列举出url的所有可能性还是比较复杂的。所以,RESTful风格的接口传入参数比较复杂时,还是尽量使用POST方法比较简便。
评论