本文包含了,生成cookie 和 帶cookie以及 帶參數和不帶參數的的get請求。使用了Springboot 和SwaggerUi框架。
SwaggerUi是一個自動生成接口文檔的插件,用了SwaggerUi就可以不用寫接口文檔了。
Swagger 接口文檔地址:http://127.0.0.1:8080/swagger-ui.html
java get請求接口類
package com.course.server; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.web.bind.annotation.*; import javax.servlet.http.Cookie; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.util.HashMap; import java.util.Map; import java.util.Objects; /** * 返回一個cookies的get請求接口 */ @RestController @Api(value = "/", description = "這是我全部的get方法") public class MyGetMethod { @RequestMapping(value = "/getCookies", method = RequestMethod.GET) @ApiOperation(value = "通過這個方法可以獲取到cookies", httpMethod = "Get") public String getCookies(HttpServletResponse response) { //HttpServletRequest 裝請求信息的類 //HttpServletResponse 裝響應信息的類 是一個類,不是參數 Cookie cookie = new Cookie("login", "true"); response.addCookie(cookie); return "恭喜你獲得cookies信息成功!"; } /** * 要求客戶端帶cookies訪問 */ @RequestMapping(value = "get/with/cookies", method = RequestMethod.GET) @ApiOperation(value = "要求客戶端帶cookies訪問", httpMethod = "Get") public String getWithCookies(HttpServletRequest request) { Cookie[] cookies = request.getCookies(); if (Objects.isNull(cookies)) { return "你必須攜帶一個cookie!"; } for (Cookie cookie : cookies) { if (cookie.getName().equals("login") && cookie.getValue().equals("true")) { return "恭喜你訪問成功!"; } else { return "你的cookie值錯誤"; } } return "你必須攜帶一個cookie!"; } /** * 開發一個需要攜帶參數的get 請求 * 第一種實現方式 url: key=value&key=value * 模擬獲取商品列表 */ @RequestMapping(value = "/get/with/param", method = RequestMethod.GET) @ApiOperation(value = "開發一個需要攜帶參數的get 請求, url: key=value&key=value", httpMethod = "GET") public Map<String, Integer> getList(@RequestParam Integer start, @RequestParam Integer end) { Map<String, Integer> mylist = new HashMap<>(); mylist.put("鞋", 400); mylist.put("襯衫", 300); mylist.put("褲子", 400); return mylist; } /** * 第二種需要攜帶參數訪問的get請求 * url: ip:port/get/with/param/10/20 http://127.0.0.1:8080/get/with/param/10/20 */ @RequestMapping(value = "/get/with/param/{start}/{end}") @ApiOperation(value = "開發一個需要攜帶參數的get 請求, url: ip:port/get/with/param/10/20", httpMethod = "GET") public Map myGetList(@PathVariable Integer start, @PathVariable Integer end) { Map<String, Integer> mylist = new HashMap<>(); mylist.put("鞋", 400); mylist.put("襯衫", 300); mylist.put("褲子", 400); return mylist; } }
main運行入口
package com.example.demo; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.context.annotation.ComponentScan; @SpringBootApplication @ComponentScan("com.course") public class Application { public static void main(String[] args) { SpringApplication.run(Application.class, args); } }
Swagger配置類
package com.course.config; import org.mapstruct.BeanMapping; import org.springframework.beans.factory.annotation.Configurable; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import springfox.documentation.builders.ApiInfoBuilder; import springfox.documentation.builders.PathSelectors; import springfox.documentation.service.ApiInfo; import springfox.documentation.service.Contact; import springfox.documentation.spi.DocumentationType; import springfox.documentation.spring.web.plugins.Docket; import springfox.documentation.swagger2.annotations.EnableSwagger2; @Configuration //加載配置文件 @EnableSwagger2 //加載配置文件 public class SwaggerConfig { @Bean public Docket api() { return new Docket(DocumentationType.SWAGGER_2).apiInfo(apiInfo()) .pathMapping("/") .select() .paths(PathSelectors.regex("/.*")) .build(); } private ApiInfo apiInfo() { return new ApiInfoBuilder().title("我的接口文檔") .contact(new Contact("名字", "url", "郵箱")) .description("這是我的swggerUi生成的接口文檔") .version("版本") .build(); } }