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’
如果觉得有帮助希望能关注下公众号