写点什么

项目实战接口开发 SpringBoot

  • 2023-12-15
    福建
  • 本文字数:4010 字

    阅读完需:约 13 分钟

一、springboot 官方 demo 开发


  1. 依赖包和父:pom.xml


<dependencies>    <dependency>        <groupId>org.springframework.boot</groupId>        <artifactId>spring-boot-starter-parent</artifactId>        <version>2.7.14</version>    </dependency>    <dependency>        <groupId>org.springframework.boot</groupId>        <artifactId>spring-boot-starter-web</artifactId>        <version>2.7.14</version>    </dependency></dependencies>
复制代码


  1. 新建 SampleController.java


import org.springframework.boot.*;import org.springframework.boot.autoconfigure.EnableAutoConfiguration;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.ResponseBody;
@Controller@EnableAutoConfigurationpublic class SampleController { @RequestMapping("/") @ResponseBody String home(){ return "Hello World!"; }
public static void main(String[] args) { SpringApplication.run(SampleController.class,args); }}
复制代码


  1. 运行结果



说明:内置了 web 服务器


二、使用 SpringBoot 开发 get 方法接口


返回 cookie 信息的 get 接口开发


  1. 新建 Application.java 入口


import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplication;import org.springframework.context.annotation.ComponentScan;
@SpringBootApplication@ComponentScan("com.course.server")public class Application { public static void main(String[] args) { SpringApplication.run(Application.class,args); }}
复制代码


  1. com.course.server 新建 MyGetMethod.java


@RestControllerpublic class MyGetMethod{    @RequestMapping(value="/getCookies",method=RequestMethod.GET)    public String getCookies(){        return "恭喜你获得cookies信息成功";        }}
复制代码


  1. Resource 下新建文件:application.properties


server.port=${port:8888}
复制代码


  1. 启动后访问



  1. 获得 cookies


修改 com.course.server.MyGetMethod.java 代码:


package com.course.server;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RequestMethod;import org.springframework.web.bind.annotation.RestController;import javax.servlet.http.Cookie;import javax.servlet.http.HttpServletResponse;
@RestControllerpublic class MyGetMethod { @RequestMapping(value = "/getCookies",method= RequestMethod.GET) public String getCookies(HttpServletResponse response){ // HttpServletRequest 装请求信息得类 // HttpServletResponse 装响应信息得类 Cookie cookie = new Cookie("login", "true"); response.addCookie(cookie); return "恭喜你获得cookies信息成功"; }}
复制代码


运行:



三、一个要求携带 cookie 信息访问的 get 接口开发


  1. MyGetMethod.java 新增方法:


@RestControllerpublic class MyGetMethod{    @RequestMapping(value="/get/with/Cookies",method=RequestMethod.GET)    public String getWithCookies(HttpServletRequest request){        // HttpServletRequest 装请求信息的类        // HttpServletResponse 装响应信息的类        Cookie[] cookies = request.getCookies();        if(Objects.isNull(cookies)){            return "你必须携带cookies信息来";                }        for(Cookie cookie:cookies){            if(cookie.getName().equals("login") &&             cookie.getValue().equals("true")){                 return "恭喜你访问成功!";                        }                        }        return "你必须携带cookies信息来";        }}
复制代码


  1. Jemeter 访问


1)加一个线程组


2)加一个 HTTP 请求


3)加一个 HTTP Cookie 管理器



4)加一个查看结果树



四、需要携带参数的 get 请求两种开发方式


4.1 方式 1:url:key=value&key=value


@RestControllerpublic class MyGetMethod{    @RequestMapping(value="/get/with/param",method=RequestMethod.GET)    public Map<String,Integer> getList(@RequestParam Integer start,                                       @RequestParam Integer end){        Map<String,Integer> myList = new HashMap<>();        myList.put("鞋",500);        myList.put("衣服",200);        myList.put("干脆面",1);        return myList;                                                                     }}
复制代码


结果:



4.2 方式 2:url:ip:port/get/with/param/10/20


@RequestMapping(value = "/get/with/param/{start}/{end}",method = RequestMethod.GET)public Map<String,Integer> getList(@RequestParam(required = false) Integer start,                                   @RequestParam(required = false) Integer end){    Map<String,Integer> myList = new HashMap<>();    myList.put("鞋",500);    myList.put("衣服",200);    myList.put("干脆面",1);    return myList;}
复制代码


结果:



五、使用 SpringBoot 开发 post 方法接口


  1. 新增 MyPostMethod.java


import io.swagger.annotations.Api;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RestController;import javax.servlet.http.Cookie;
@RestController@RequestMapping("/v1")public class MyPostMethod{ // 这个变量用来装我们的cookies信息 private static Cookie cookie; // 用户登录成功获取到cookies,然后再访问其他接口获取到列表 @RequestMapping(value="/login",method=RequestMethod.POST) @ApiOperation(value="登陆接口,成功后获取cookies信息",httpMethod="POST") public String login(HttpServletResponse response, @RequestParam(value="userName",required=true) String userName, @RequestParam(value="password",required=true) String password){ if(userName.equals("zhangsan")&&password.equals("123456")){ cookie = new Cookie("login","true"); response.addCookie(cookie); return "恭喜你登录成功了!"; } return "用户名或者密码错误!"; }}
复制代码


  1. 在 Jmeter 中测试该接口






六、Cookie 验证和返回用户列表的 post 接口开发


  1. 新增 lombok 依赖


<dependency>    <groupId>org.projectlombok</groupId>    <artifactId>lombok</artifactId>    <version>RELEASE</version>    <scope>compile</scope></dependency>
复制代码


  1. 新增类 com/course/bean/User.java


package com.course.bean;import lombok.Data;
@Datapublic class User { private String userName; private String password; private String name; private String age; private String sex;}
复制代码


  1. 新增类 com/course/server/MyPostMethod.java


package com.course.server;import com.course.bean.User;import org.springframework.web.bind.annotation.*;import javax.servlet.http.Cookie;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;
@RestController@RequestMapping("/v1")public class MyPostMethod { // 这个变量用来装我们的cookies信息 private static Cookie cookie; // 用户登录成功获取到cookies,然后再访问其他接口获取到列表
@RequestMapping(value="/login",method= RequestMethod.POST) public String login(HttpServletResponse response, @RequestParam(value="userName",required=true) String userName, @RequestParam(value="password",required=true) String password){ if(userName.equals("zhangsan")&&password.equals("123456")){ cookie = new Cookie("login","true"); response.addCookie(cookie); return "恭喜你登录成功了!"; } return "用户名或者密码错误!"; }
@RequestMapping(value="/getUserList",method = RequestMethod.POST) public String getUserList(HttpServletRequest request, @RequestBody User u){ // 获取cookies Cookie[] cookies = request.getCookies(); // 验证cookies是否合法 for (Cookie c:cookies){ if (c.getName().equals("login") && c.getValue().equals("true") && u.getUserName().equals("zhangsan") && u.getPassword().equals("123456")){ User user = new User(); user.setName("lisi"); user.setAge("14"); user.setSex("man"); return user.toString(); } } return "参数不合法"; }}
复制代码


  1. 启动 Application.java


  1. 使用 Jemeter 测试接口


1)新建线程组


2)新增 HTTP Header Manager



3)新增 HTTP Cookie Manager



4)新增 HTTP Request



5)添加结果树




文章转载自:hqq的进阶日记

原文链接:https://www.cnblogs.com/hqq2019-10/p/17901677.html

项目体验地址:http://www.jnpfsoft.com/?from=001

用户头像

还未添加个人签名 2023-06-19 加入

还未添加个人简介

评论

发布
暂无评论
项目实战接口开发SpringBoot_springboot_不在线第一只蜗牛_InfoQ写作社区