springboot HTTP请求接口实现
基于springboot 2.6.6
代码地址:github仓库地址
更多系列教程请关注公众号’coderlike’
如果觉得有帮助希望能关注下公众号
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.6.6</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
依赖
添加springboot-starter-web
添加lombok(简洁代码)
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<version>2.6.6</version>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.30</version>
<scope>provided</scope>
</dependency>
配置文件 application.yml
配置端口(不配置时,默认是8080),按机器空闲端口随意配置,只要没被暂用就行
server:
port: 8080
准备基础样例文件
新建package ‘controller和model’
新建TestController.java和User.java文件
完成后代码文件组织架构如下
相关注解
-
@RestController
作用在类上,表示是一个restful风格的controller
-
@RequestMapping 路由定义
1.注解在类上,表示整个类都以该值为前缀
2.也可以注解在方法上,但是需要自行指定求情方式(GET/POST/DELETE…)
-
@GetMapping GET请求
-
@PostMapping POST请求
-
@DeleteMapping DELETE请求
-
…其他不常用的就不一一列出类
使用方式
见附录的TestController.java
接口测试可以使用Postman,也可以使用IDEA里优秀的插件
附录
User.java
package org.example.model;
import lombok.Data;
@Data
public class User {
private String name;
private int age;
}
TestController.java
package org.example.controller;
import org.example.model.User;
import org.springframework.web.bind.annotation.*;
@RestController
@RequestMapping("/api/test")
public class TestController {
//GET请求
/** 不带参数的HTTP GET请求
*<a href="http://localhost:8080/api/test/v1">访问url</a>
*/
@GetMapping("v1")
public String getTest(){
return "hello test";
}
/** 带参数的HTTP GET请求(参数作为url路径的一部分)
*<a href="http://localhost:8080/api/test/v1/zhangsan">访问url</a>
*/
@GetMapping("v1/{name}")
public String getTest2(@PathVariable("name") String nameParam){
return nameParam;
}
/** 带参数的HTTP GET请求
*<a href="http://localhost:8080/api/test/v2?name=zhangsan">访问url</a>
*/
@GetMapping("v2")
public String getTest3(@RequestParam("name") String nameParam){
return "hello, my name is " + nameParam;
}
/** 带参数的HTTP GET请求
*<a href="http://localhost:8080/api/test/v3?name=zhangsan&age=12">访问url</a>
*/
@GetMapping("v3")
public String getTest4(@RequestParam("name") String nameParam,@RequestParam("age") String ageParam){
return "hello, my name is " + nameParam + ", age is " + ageParam;
}
/** 带参数的HTTP GET请求,用实体对象接收参数
*<a href="http://localhost:8080/api/test/v4?name=zhangsan&age=12">访问url</a>
*/
@GetMapping("v4")
public String getTest4(User user){
return "hello, from object, my name is " + user.getName() + ", age is " + user.getAge();
}
//POST请求
/**不带参数的post请求
*
*/
@PostMapping("v1/post")
public String postTest(){
return "post without params";
}
/**带参数的post请求
*
*/
@PostMapping("v2/post")
public String postTest(@RequestBody User user){
return "post with params, name=" + user.getName() + ",age=" + user.getAge();
}
}
更多系列教程请关注公众号’coderlike’
如果觉得有帮助希望能关注下公众号