SpringBoot-(3)-RestController接口参数
一,无参接口:
//无参接口 @RequestMapping("/appSecret") public String secret() { return "EK125EKLNGKNELKGKGNKLEGNK87"; }
访问接口
二,带参接口:
@RequestMapping("/serviceTime") public String time(@RequestParam(value = "local", required = true) String local) { System.out.println("local:"+local); return "2018-8-8 18:36:00"; }
访问接口
三,多参接口
//多参接口,表单 @RequestMapping("/register") public Account register(String username, String password) { Account user = new Account(); user.setUsername(username); user.setPassword(password); return user; }
访问接口
四,json实例对象
//json实体对象 @RequestMapping(value = "/addAccount", method = RequestMethod.POST) public Account addAccount(@RequestBody Account account) { System.out.print(account.getUsername()); return account; }
访问接口:
五,路径参数:
//路径参数 @RequestMapping(value="/searchAccountById/{id}",method = RequestMethod.POST) public String searchAccountById(@PathVariable("id") int id) { return "{id:"+id+"}"; } @RequestMapping(value="/formatDate/{year}-{month}-{day}",method = RequestMethod.POST) public String formatDate(@PathVariable("year") int year, @PathVariable("month") int month, @PathVariable("day") int day) { return year + "年" + month + "月" + day + "日"; }
访问接口
Controller代码:
package com.example.demo.controllers; import com.example.demo.domain.Account; import org.springframework.web.bind.annotation.*; /** * Created by zhang_guang_yang on 2018/11/18. */ @RestController public class UserBusinessController { //无参接口 @RequestMapping("/appSecret") public String secret() { return "EK125EKLNGKNELKGKGNKLEGNK87"; } //带参接口 @RequestMapping("/serviceTime") public String time(@RequestParam(value = "local", required = true) String local) { System.out.println("local:"+local); return "2018-8-8 18:36:00"; } //多参接口,表单 @RequestMapping("/register") public Account register(String username, String password) { Account user = new Account(); user.setUsername(username); user.setPassword(password); return user; } //json实体对象 @RequestMapping(value = "/addAccount", method = RequestMethod.POST) public Account addAccount(@RequestBody Account account) { System.out.print(account.getUsername()); return account; } //路径参数 @RequestMapping(value="/searchAccountById/{id}",method = RequestMethod.POST) public String searchAccountById(@PathVariable("id") int id) { return "{id:"+id+"}"; } @RequestMapping(value="/formatDate/{year}-{month}-{day}",method = RequestMethod.POST) public String formatDate(@PathVariable("year") int year, @PathVariable("month") int month, @PathVariable("day") int day) { return year + "年" + month + "月" + day + "日"; } }
补充: Map类型多参数转换,POST,GET接口的实现:
package com.ams.accountmanagementsystem.controllers; import com.ams.accountmanagementsystem.models.TestUser; import org.springframework.web.bind.annotation.*; import java.util.Map; @RestController public class ApiTest { // 不带参数 @RequestMapping("/test_no_param") public String testNoParam() { return "success"; } // 带有一个参数 @RequestMapping("/test_param") public String testParam(@RequestParam String param) { return "success, the param is: " + param; } // 带多个参数 @RequestMapping("/test_multiple_param") public String testMultipleParam(@RequestParam String name, @RequestParam String password) { return "success, the name is: " + name + " password is: " + password; } // map接受参数 @RequestMapping("/test_param_map") public String testParamMap(@RequestParam Map map) { return "success, map: " + map; } // path参数 @RequestMapping("/test/{path}") public String testPath(@PathVariable String path) { return "success, path: " + path; } // post带一个参数 @PostMapping("/test_post_param") public String postParam(@RequestBody String time) { return "success, time: " + time; } // post带Map参数 @PostMapping("/test_post_map_param") public String postMapParam(@RequestBody Map map) { return "success, map: " + map; } // post转实体对象 @PostMapping("/test_post_entity") public String postEntity(@RequestBody TestUser user) { return "success, entity " + user; } // POST GET @RequestMapping(value = "/test_get", method = RequestMethod.GET) public String testGetMethod() { return "get method"; } @RequestMapping(value = "/test_post", method = RequestMethod.POST) public String testPostMethod() { return "post method"; } @GetMapping("/test_get_method") public String testGet() { return "get method"; } @PostMapping("/test_post_method") public String testPost() { return "post method"; } }