SpringBoot筆記(十)swagger2

swagger配置

還是兩種配置方式

  • 直接在application中配置
    1. @EnableSwagger2注解
    2. 加入@baen等配置
  • 單獨(dú)建立swagger2配置類(推薦)

加入依賴

        <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-swagger2</artifactId>
            <version>2.6.1</version>
        </dependency>
        <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-swagger-ui</artifactId>
            <version>2.6.1</version>
        </dependency>

編寫(xiě)配置類

package com.jiataoyuan.demo.springboot.swagger;

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.builders.RequestHandlerSelectors;
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;

/**
 * @author TaoYuan
 * @version V1.0.0
 * @date 2018/4/19 0019
 * @description description
 */
@Configuration
@EnableSwagger2
public class SwaggerConfig {

    @Bean
    public Docket buildDocket(){
        return new Docket(DocumentationType.SWAGGER_2)
                .apiInfo(buildApiInfo())
                .select()
                .apis(RequestHandlerSelectors.basePackage("com.jiataoyuan.demo.springboot.controller"))
                .paths(PathSelectors.any())
                .build();
    }

    private ApiInfo buildApiInfo(){
        return new ApiInfoBuilder()
                .title("Start restfulAPI Demo")
                .description("springboot swagger2")
                .termsOfServiceUrl("https://blog.csdn.net/lftaoyuan")
                .contact(new Contact(
                        "TaoYuan",
                        "https://blog.csdn.net/lftaoyuan",
                        "1876665310@qq.com"))
                .version("1.0")
                .build();
    }


}

  • apis的basePackage可以自行設(shè)置controller包,詳細(xì)到包
  • paths一般選擇any
  • apiInfo可自行設(shè)置,主要是API的標(biāo)題之類的顯示信息,也可以直接build
  • 接口:http://{ip}:{port}/swagger-ui.html

效果

效果.png

接口配置

package com.jiataoyuan.demo.springboot.controller;

import com.jiataoyuan.demo.springboot.model.User;
import io.swagger.annotations.*;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.servlet.ModelAndView;

/**
 * @author TaoYuan
 * @version V1.0.0
 * @date 2018/4/12 0012
 * @description description
 */

@RestController
@RequestMapping("/start")
public class StartController {


    // return json
    @ApiOperation(value = "獲取用戶信息", notes = "獲取用戶信息note")
    @GetMapping("/getUser")
    public User getUser() {
        User user = new User();
        user.setName("zhangsan");
        return user;
    }

    @ApiOperation(value = "修改用戶信息", notes = "修改用戶信息note")
    @PostMapping("/setUser")
    public User setUser(@RequestBody @ApiParam(name="User",value="用戶信息",required=true) User user) {

        return user;
    }

    // 隱式參數(shù)的方式
    @ApiImplicitParams({
            @ApiImplicitParam(
                    name = "user",
                    value = "用戶信息",
                    required = true,
                    dataType = "User")
    })
    @ApiOperation(value = "修改用戶信息", notes = "修改用戶信息note")
    @PostMapping("/setUser1")
    public User setUser1(@RequestBody User user) {
        return user;
    }

    // main
    @GetMapping()
    public String Main() {
        return "<h1>Hello Dear! Let's me Start SpringBoot!</h1>";
    }



}


效果

效果2.png
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Spring Cloud為開(kāi)發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見(jiàn)模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,680評(píng)論 19 139
  • 由于Spring Boot能夠快速開(kāi)發(fā)、便捷部署等特性,相信有很大一部分Spring Boot的用戶會(huì)用來(lái)構(gòu)建RE...
    yshenhn閱讀 657評(píng)論 0 1
  • 最近做一個(gè)UGUI的血條功能,期間嘗試過(guò)幾種方法。也查了好多資料。在自己寫(xiě)的demo中,運(yùn)行啥的一切正常,在自己項(xiàng)...
    飄蕩的句號(hào)閱讀 1,384評(píng)論 0 0
  • 在這一個(gè)人的雨夜里 我默數(shù)著自己的淚滴 與眼前的雨滴 是否成正比 可慢慢地 我已數(shù)不清 以計(jì)算不清 直到我的臉頰被...
    九八盧聰閱讀 226評(píng)論 0 0
  • 本文結(jié)構(gòu): 什么是交叉驗(yàn)證法? 為什么用交叉驗(yàn)證法? 主要有哪些方法??jī)?yōu)缺點(diǎn)? 各方法應(yīng)用舉例? 什么是交叉驗(yàn)證法...
    不會(huì)停的蝸牛閱讀 22,476評(píng)論 6 26

友情鏈接更多精彩內(nèi)容