SpringBoot--RestController接口参数

Posted 洋子哥哥

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SpringBoot--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";
    }
}

 

以上是关于SpringBoot--RestController接口参数的主要内容,如果未能解决你的问题,请参考以下文章