国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Java技術(shù)-接口文檔-Swagger2&Swagger3&接口文檔UI整合

這篇具有很好參考價(jià)值的文章主要介紹了Java技術(shù)-接口文檔-Swagger2&Swagger3&接口文檔UI整合。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

Java技術(shù)-接口文檔-Swagger2&Swagger3&接口文檔UI整合,java,接口文檔,swagger,swagger3,Knife4j,springboot接口文檔

目錄

一、Swagger2完整用法

1.POM依賴

2.接口類

3.實(shí)現(xiàn)類

4.托管靜態(tài)資源

5.接口文檔配置

6.生產(chǎn)環(huán)境關(guān)閉接口文檔

7.Swagger3頁面效果

二、Swagger3完整用法

三、Swagger整合Knife4jUi

1.POM依賴

2.接口類

3.實(shí)現(xiàn)類

4.托管靜態(tài)資源

5.接口文檔配置

6.生產(chǎn)環(huán)境關(guān)閉接口文檔

四、注釋和參數(shù)講解

1.@Api()

2.@ApiOperation()

3.@ApiParam()

4.@ApiModel()

5.@ApiModelProperty()

6.@ApiImplicitParams() 和@ApiImplicitParam()


Swagger 說明

Swagger是為了解決企業(yè)中接口(api)中定義統(tǒng)一標(biāo)準(zhǔn)規(guī)范的文檔生成工具。方便各大后端小基友的懶問題,但是寫注解也是妥妥的麻煩,但是如果版本迭代快或者人員的流動(dòng)性大,會(huì)導(dǎo)致很多問題。所以很多企業(yè)中都會(huì)有統(tǒng)一的規(guī)范文檔,來定義接口標(biāo)準(zhǔn)。

一、Swagger2完整用法

1.POM依賴

<properties>
? ?<springfox-swagger.version>2.9.2</springfox-swagger.version>
</properties>

<dependency>
                <groupId>io.springfox</groupId>
                <artifactId>springfox-swagger2</artifactId>
                <version>${springfox-swagger.version}</version>
            </dependency>
            <dependency>
                <groupId>io.springfox</groupId>
                <artifactId>springfox-swagger-ui</artifactId>
                <version>${springfox-swagger.version}</version>
            </dependency>
2.接口類

見【3.2】

3.實(shí)現(xiàn)類

見【3.3】

4.托管靜態(tài)資源
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.InterceptorRegistration;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;

@EnableSwagger2
@EnableWebMvc
@Configuration
public class ApiDocConfiguration extends WebMvcConfigurerAdapter {


    @Override
    public void addResourceHandlers(ResourceHandlerRegistry registry) {

        registry.addResourceHandler("doc.html")
                .addResourceLocations("classpath:/META-INF/resources/");

        registry.addResourceHandler("swagger-ui.html")
                .addResourceLocations("classpath:/META-INF/resources/");
        registry.addResourceHandler("/webjars/**")
                .addResourceLocations("classpath:/META-INF/resources/webjars/");

        super.addResourceHandlers(registry);

    }

}
5.接口文檔配置
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;

@Configuration
public class SwaggerConf {
    @Bean
    public Docket docket() {
        return new Docket(DocumentationType.SWAGGER_2)
                .apiInfo(apiInfo()).enable(true)
                .select()
                .apis(RequestHandlerSelectors.basePackage("com.ikong.service.controller"))
                .paths(PathSelectors.any())
                .build();
    }

    private ApiInfo apiInfo() {
        return new ApiInfoBuilder()
                .title("開放接口平臺(tái)")
                .description("")
                .contact(new Contact("ikong", "http://ikong.ik.com", "ikong@ik.com"))
                .version("1.0")
                .build();
    }
}
6.生產(chǎn)環(huán)境關(guān)閉接口文檔

見【3.6】

7.Swagger3頁面效果

Java技術(shù)-接口文檔-Swagger2&Swagger3&接口文檔UI整合,java,接口文檔,swagger,swagger3,Knife4j,springboot接口文檔

Java技術(shù)-接口文檔-Swagger2&Swagger3&接口文檔UI整合,java,接口文檔,swagger,swagger3,Knife4j,springboot接口文檔

Swagger2多包實(shí)現(xiàn)方法

二、Swagger3完整用法

1.POM依賴

2.接口類

3.實(shí)現(xiàn)類

4.托管靜態(tài)資源

5.接口文檔配置

6.生產(chǎn)環(huán)境關(guān)閉接口文檔

7.Swagger3頁面效果

三、Swagger整合Knife4jUi

1.POM依賴

<properties>
? ? <knife4j-swagger.version>3.0.3</knife4j-swagger.version>
</properties>

<dependency>
    <groupId>com.github.xiaoymin</groupId>
    <artifactId>knife4j-spring-boot-starter</artifactId>
    <version>${knife4j-swagger.version}</version>
</dependency>
2.接口類
import com.ikong.model.req.TestReq;
import com.ikong.model.ret.TestRet;
import com.jd.security.framework.common.model.Result;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiOperation;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestParam;

public interface TestApi {

    String test1(@RequestParam(value = "name") String name);

    TestRet test2(@RequestBody TestReq req);

    Result<TestRet> test3(@RequestBody TestReq req);
}
3.實(shí)現(xiàn)類

import com.ikong.api.TestApi;
import com.ikong.model.req.TestReq;
import com.ikong.model.ret.TestRet;
import com.jd.security.framework.common.model.Result;
import com.jd.security.framework.common.model.ResultUtils;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiOperation;
import org.springframework.web.bind.annotation.*;

@Api(tags = "驗(yàn)證參數(shù)類型")
@RestController
@RequestMapping("/test")
public class TestApiController implements TestApi {

    @ApiOperation("001接收普通參數(shù)")
    @ApiImplicitParam(name = "name", value = "姓名", required = true)
    @GetMapping("test1")
    @Override
    public String test1(@RequestParam(value = "name") String name) {
        return "hello," + name;
    }

    @ApiOperation("002接收對(duì)象參數(shù)")
    @GetMapping("test2")
    @Override
    public TestRet test2(TestReq req) {
        return new TestRet(Long.valueOf(req.getId()), 200);
    }

    @ApiOperation("003返回標(biāo)準(zhǔn)格式")
    @PostMapping("test3")
    @Override
    public Result<TestRet> test3(@RequestBody TestReq req) {
        return ResultUtils.wrapSuccess(new TestRet(Long.valueOf(req.getId()), 200));
    }
}
4.托管靜態(tài)資源

import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurationSupport;

@Configuration
public class ApiDocHandlerConfiguration extends WebMvcConfigurationSupport {

    @Value("${swagger.enable:true}")
    private Boolean enable = false;

    @Override
    public void addResourceHandlers(ResourceHandlerRegistry registry) {
        if (enable) {
            registry.addResourceHandler("doc.html").addResourceLocations("classpath:/META-INF/resources/");
            registry.addResourceHandler("/webjars/**").addResourceLocations("classpath:/META-INF/resources/webjars/");
        }
    }
}
5.接口文檔配置

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.core.env.Environment;
import springfox.documentation.builders.ParameterBuilder;
import springfox.documentation.builders.PathSelectors;
import springfox.documentation.builders.RequestHandlerSelectors;
import springfox.documentation.schema.ModelRef;
import springfox.documentation.service.ApiInfo;
import springfox.documentation.service.Contact;
import springfox.documentation.service.Parameter;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2WebMvc;

import java.util.ArrayList;
import java.util.List;

@Configuration
@EnableSwagger2WebMvc
public class ApiDocKnife4jUiConfig {
    @Bean
    public Docket docket(Environment environment) {
        // 添加接口請(qǐng)求頭參數(shù)配置 沒有的話 可以忽略
        ParameterBuilder tokenPar = new ParameterBuilder();
        List<Parameter> pars = new ArrayList<>();
        tokenPar.name("token")
                .description("令牌")
                .defaultValue("")
                .modelRef(new ModelRef("string"))
                .parameterType("header").required(false).build();
        pars.add(tokenPar.build());
        return new Docket(DocumentationType.SWAGGER_2)
                .apiInfo(apiInfo())
                .enable(true)//是否啟動(dòng)swagger 默認(rèn)啟動(dòng)
                .groupName("ikong")//所在分組
                .select()
                .apis(RequestHandlerSelectors.basePackage("com.ikong.service.impl"))//指定掃描的包路徑
                .paths(PathSelectors.any())
                .build()
                .globalOperationParameters(pars);
    }

    private ApiInfo apiInfo() {
        Contact author = new Contact("ikong", "api.ik.com", "ikong@ik.com");
        return new ApiInfo(
                "開放平臺(tái)接口文檔",
                "開放平臺(tái)接口文檔",
                "1.0",
                "",
                author,
                "",
                "",
                new ArrayList<>()
        );

    }
}
6.生產(chǎn)環(huán)境關(guān)閉接口文檔

application.properties

swagger.enable=false

7.Knife4jUi頁面效果

URL :?http://localhost:8083/doc.html

Java技術(shù)-接口文檔-Swagger2&Swagger3&接口文檔UI整合,java,接口文檔,swagger,swagger3,Knife4j,springboot接口文檔

Java技術(shù)-接口文檔-Swagger2&Swagger3&接口文檔UI整合,java,接口文檔,swagger,swagger3,Knife4j,springboot接口文檔

四、注釋和參數(shù)講解

參數(shù)說明:
name -- 參數(shù)名
value --?參數(shù)說明
required -- 是否必須填寫
dataType -- 數(shù)據(jù)類型
paramType -- 參數(shù)類型
example -- 舉例
常用注解說明:

  • @Api()用于類;

表示標(biāo)識(shí)這個(gè)類是swagger的資源

  • @ApiOperation()用于方法;

表示一個(gè)http請(qǐng)求的操作

  • @ApiParam()用于方法,參數(shù),字段說明;

表示對(duì)參數(shù)的添加元數(shù)據(jù)(說明或是否必填等)

  • @ApiModel()用于類

表示對(duì)類進(jìn)行說明,用于參數(shù)用實(shí)體類接收

  • @ApiModelProperty()用于方法,字段

表示對(duì)model屬性的說明或者數(shù)據(jù)操作更改

  • @ApiIgnore()用于類,方法,方法參數(shù)

表示這個(gè)方法或者類被忽略

  • @ApiImplicitParam() 用于方法

表示單獨(dú)的請(qǐng)求參數(shù)

  • @ApiImplicitParams() 用于方法,包含多個(gè) @ApiImplicitParam文章來源地址http://www.zghlxwxcb.cn/news/detail-586202.html

具體使用說明:
1.@Api()
  ···
  @Api("測(cè)試用例1")
  @Controller
  public class swaggerTestUse(){
  }
2.@ApiOperation()
···
@Api("測(cè)試用例1")
@Controller
public class swaggerTestUse(){
    @ApiOperation(value = "apiOperationSwaggerTest", notes = "apiOperationSwagger測(cè)試")
    public void apiOperationSwaggerTest(){
    }
}
3.@ApiParam()
···
@Api("測(cè)試用例1")
@Controller
public class swaggerTestUse(){
    @ApiOperation(value = "apiOperationSwaggerTest", notes = "apiOperationSwagger測(cè)試")
    public void apiOperationSwaggerTest(@ApiParam(name = "id", value = "id入?yún)?, required = true) Integer id){
    }
}
4.@ApiModel()
···
@ApiModel(description = "測(cè)試實(shí)體類", value = "測(cè)試實(shí)體類")
public class Album implements Serializable {
    ···
}

5.@ApiModelProperty()
···
@ApiModel(description = "測(cè)試實(shí)體類", value = "測(cè)試實(shí)體類")
public class User implements Serializable {
    @ApiModelProperty(name = "userName", value = "用戶名", required = false, exmaple = "小明")
    private String userName;
}

6.@ApiImplicitParams() 和@ApiImplicitParam()
    ···
  @Api("測(cè)試用例1")
  @Controller
  public class swaggerTestUse(){
      @ApiOperation(value = "apiOperationSwaggerTest", notes = "apiOperationSwagger測(cè)試")
      @ApiImplicitParams({@ApiImplicitParam(name = "id", value = "id入?yún)?, required = true, dataType = "Integer", paramType = "query"),
                        @ApiImplicitParam(name = "brand", value = "brand", required = true, dataType = "BRAND", paramType = "body")
    })
      public void apiOperationSwaggerTest(Integer id, Brand band){
      }
  }

到了這里,關(guān)于Java技術(shù)-接口文檔-Swagger2&Swagger3&接口文檔UI整合的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 接口工具Swagger2和Swagger-UI的使用

    接口工具Swagger2和Swagger-UI的使用

    目錄 一、為什么需要接口可視化工具? 二、Swagger-UI介紹: 1、在項(xiàng)目的pom文件中導(dǎo)入swagger2的依賴 2、下載Swagger-UI項(xiàng)目 3、引入Swagger-UI 4、編寫配置文件 第一種: 第二種: 5、訪問api文檔頁面 6、如果訪問失敗,則進(jìn)行第六步,如果訪問成功,就不用操作了。 我們的項(xiàng)目通常

    2024年02月08日
    瀏覽(31)
  • Spring Boot入門(16):Spring Boot 整合 Swagger-UI 實(shí)現(xiàn)在線API接口文檔 | 超級(jí)詳細(xì),建議收藏

    Spring Boot入門(16):Spring Boot 整合 Swagger-UI 實(shí)現(xiàn)在線API接口文檔 | 超級(jí)詳細(xì),建議收藏

    ????????在現(xiàn)代化的軟件開發(fā)中,API接口文檔的編寫和管理是非常重要的一環(huán)。而Swagger-UI作為一款優(yōu)秀的API文檔生成工具,可以幫助開發(fā)者輕松地生成并管理API接口文檔,提高開發(fā)效率和代碼質(zhì)量。在本文中,我們將介紹如何使用Spring Boot框架和Swagger-UI工具實(shí)現(xiàn)在線API接

    2024年02月16日
    瀏覽(26)
  • 【花藝電商】SpringBoot集成MyBatis-Plus、Swagger2、SpringSecurity、OAuth2等技術(shù)整合開發(fā)

    【花藝電商】SpringBoot集成MyBatis-Plus、Swagger2、SpringSecurity、OAuth2等技術(shù)整合開發(fā)

    目錄 一、功能介紹 1. 說明 2. 功能實(shí)現(xiàn) 3. 技術(shù)應(yīng)用 二、技術(shù)詳述 1.MyBatis-Plus 主要體現(xiàn) 項(xiàng)目應(yīng)用 2.SpringSecurity 應(yīng)用作用 三、頁面展示 1. 登入 2. 主頁 3. 詳情 4. 購物車 5. 訂單 6.?沙箱支付 每篇一獲 這個(gè)項(xiàng)目主要使用了 Spring Security 、 MyBatis-Plus 、 Redis 、 雪花ID 、 參數(shù)校驗(yàn)技

    2024年01月25日
    瀏覽(15)
  • SpringBoot 整合Swagger2

    SpringBoot 整合Swagger2

    Swagger是一套開源工具和規(guī)范,用于設(shè)計(jì)、構(gòu)建和文檔化 RESTful Web 服務(wù)。它允許開發(fā)人員定義API的各個(gè)方面,并生成易于理解的API文檔和交互式API探索界面。同時(shí),Swagger還提供代碼生成工具,可自動(dòng)生成與API交互的客戶端和服務(wù)器端代碼,提高開發(fā)效率。 官網(wǎng):https://swagge

    2024年04月27日
    瀏覽(23)
  • SpringBoot整合Swagger2

    SpringBoot整合Swagger2

    在團(tuán)隊(duì)開發(fā)中,一個(gè)好的 API 文檔不但可以減少大量的溝通成本,還可以幫助一位新人快速上手業(yè)務(wù)。傳統(tǒng)的做法是由開發(fā)人員創(chuàng)建一份 RESTful API 文檔來記錄所有的接口細(xì)節(jié),并在程序員之間代代相傳。這種做法存在以下幾個(gè)問題: 1)API 接口眾多,細(xì)節(jié)復(fù)雜,需要考慮不同

    2023年04月16日
    瀏覽(19)
  • Spring Boot 整合 Swagger2 糾錯(cuò)

    ????????因?yàn)槲乙⒌氖俏⒎?wù)的項(xiàng)目,需要建立許多模塊,以至于我在父工程中引入了當(dāng)前模塊,然后我在子模塊中又引入了當(dāng)前模塊,造成了沖突。 ????????另外一種解決方法是,經(jīng)過上網(wǎng)查證,可能由于Spring Boot和Swagger版本的問題,Spring Boot2.6以上的版本,需要使用

    2024年02月12日
    瀏覽(21)
  • SpringBoot——2.7.3版本整合Swagger3

    SpringBoot——2.7.3版本整合Swagger3

    Swagger2(基于openApi3)已經(jīng)在17年停止維護(hù)了,取而代之的是 sagger3(基于openApi3),而國內(nèi)幾乎沒有 sagger3使用的文檔,百度搜出來的大部分都是swagger2的使用,這篇文章將介紹如何在 java 中使用 openApi3(swagger3)。 Open API OpenApi是業(yè)界真正的 api 文檔標(biāo)準(zhǔn),其是由 Swagger 來維護(hù)

    2024年02月11日
    瀏覽(25)
  • swagger3 快速整合 springboot 2.6.15

    2024年02月11日
    瀏覽(24)
  • 【Springboot系列】Springboot整合Swagger3不簡單

    ???Swagger是一個(gè)根據(jù)代碼注解生成接口文檔的工具,減少和前端之間的溝通,前端同學(xué)看著文檔就可以開發(fā)了,提升了效率,之前很少寫swagger,這次自己動(dòng)手寫,還是有點(diǎn)麻煩,不怎么懂,記錄下,避免下次繼續(xù)踩坑 ? ? ? ? 新建一個(gè)springboo項(xiàng)目,一路next就好,這里使用的

    2024年02月05日
    瀏覽(30)
  • Swagger + Knife4j 接口文檔的整合

    Swagger + Knife4j 接口文檔的整合

    Swagger 接口文檔的整合: 引入依賴(Swagger 或 Knife4j)。 自定義 Swagger 配置類。 定義需要生成接口文檔的代碼位置(Controller)。 注意:線上環(huán)境不要把接口暴露出去?。?!可以通過在 SwaggerConfig 配置文件開頭加上 @Profile({“dev”, “test”}) 限定配置僅在部分環(huán)境開啟。 啟動(dòng)

    2024年01月20日
    瀏覽(23)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包