Springboot+get請求接口


本文包含了,生成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();
    }

}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM