国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - Java教程 - Java微服務開發之Swagger詳解

Java微服務開發之Swagger詳解

2022-02-19 14:58七元K Java教程

Swagger 是一個規范和完整的框架,用于生成、描述、調用和可視化 RESTful 風格的 Web 服務。總體目標是使客戶端和文件系統作為服務器以同樣的速度來更新。文件的方法,參數和模型緊密集成到服務器端的代碼,允許API來始終保持同

一、Swagger的作用和概念

? 官方地址:https://swagger.io/

? Swagger 是一個規范且完整的框架,用于生成、描述、調用和可視化 RESTful 風格的 Web 服務以及 集成Swagger自動生成API文檔。

? Swagger 的目標是對 REST API 定義一個標準且和語言無關的接口,可以讓人和計算機擁有無須訪問源碼、文檔或網絡流量監測就可以發現和理解服務的能力。當通過 Swagger 進行正確定義,用戶可以理解遠程服務并使用最少實現邏輯與遠程服務進行交互。與為底層編程所實現的接口類似,Swagger 消除了調用服務時可能會有的猜測。

1、Swagger 的優勢

  • 支持 API 自動生成同步的在線文檔:使用 Swagger 后可以直接通過代碼生成文檔,不再需要自己手動編寫接口文檔了,對程序員來說非常方便,可以節約寫文檔的時間去學習新技術。
  • 提供 Web 頁面在線測試 API:光有文檔還不夠,Swagger 生成的文檔還支持在線測試。參數和格式都定好了,直接在界面上輸入參數對應的值即可在線測試接口。

2、SwaggerUI 特點

  1. 無依賴 UI可以在任何開發環境中使用,無論是本地還是在Web端中。
  2. 人性化允許最終開發人員輕松地進行交互,并嘗試API公開的每個操作,以方便使用。
  3. 易于瀏覽歸類整齊的文檔可快速查找并使用資源和端點。
  4. 所有瀏覽器支持 Swagger UI 在所有主要瀏覽器中均可使用,以適應各種可能的情況。
  5. 完全可定制 通過完整的源代碼訪問方式以所需方式設置和調整Swagger UI。
  6. 完整的OAS支持 可視化Swagger 2.0或OAS 3.0中定義的API

前后端分離:

現主流前后端開發:Vue + SpringBoot

后端時代:前端只用管理靜態頁面; html==》后端。模版引擎 JSP=>后端是主力

前后端分離時代:

  • 后端:后端控制層、服務層、數據訪問層 【后端團隊】
  • 前端:前端控制層、視圖層 【前端團隊】
  • 偽造后端數據,json。在后端開發前數據以及存在,不需要后端,前端工程師依舊能將項目跑起來。
  • 前后端如何交互?==>API
  • 前后端相對獨立,松耦合;
  • 前后端甚至可以部署在不同的服務器上。

產生一個問題

? 前后端集成聯調,前端人員和后端人員無法做到 “及時協商,盡早解決”,最終導致問題集中爆發;

SpringBoot中集成Swagger

解決方案:

首先指定scheme,實時更新最新的API,降低集成的風險。

早些年,制定Word計劃文檔

前后端分離:

  • 前端測試后端接口使用:Postman工具。
  • 后端提供接口:需要實時更新最新改動和消息。

這時Swagger很好的解決了這個問題

  • 號稱世界上最流行的API框架。
  • Restful API文檔在線自動生成工具 ,API文檔與API定義同步更新
  • 直接運行,可以在線測試API接口。
  • 支持多種語言 如:Java 、Php等高級語言

 

2、SpringBoot集成Swagger

1、新建一個SpringBoot-web項目

2、導包

<!-- https://mvnrepository.com/artifact/io.springfox/springfox-swagger2 -->
<dependency>
  <groupId>io.springfox</groupId>
  <artifactId>springfox-swagger2</artifactId>
  <version>2.9.2</version>
</dependency>

<!-- https://mvnrepository.com/artifact/io.springfox/springfox-swagger-ui -->
<dependency>
  <groupId>io.springfox</groupId>
  <artifactId>springfox-swagger-ui</artifactId>
  <version>2.9.2</version>
</dependency>

3、編寫HelloController,測試確保運行成功!

@RestController
public class HelloController {

 @RequestMapping(value = "/hello")
  public String Hello(){
      return "Hello Swgger!";
  }

}

4、要使用Swagger,需要編寫一個配置類SwaggerConfig來配置 Swagger

@Configuration //配置類
@EnableSwagger2// 開啟Swagger2的自動配置
public class SwaggerConfig {  
}

目錄:

Java微服務開發之Swagger詳解

5、訪問測試 :http://localhost:8080/swagger-ui.html ,看到swagger的界面;

Java微服務開發之Swagger詳解

 

3、配置Swagger

1、Swagger實例Bean是Docket,所以通過配置Docket實例來配置Swaggger

Java微服務開發之Swagger詳解

@Configuration
@EnableSwagger2 // 開啟Swagger2的自動配置
public class SwaggerConfig {
  //配置了Swagger的Docket的bean實例
  @Bean
  public Docket docket(Environment environment){
    return new Docket(DocumentationType.SWAGGER_2);
      
}

2、通過apiInfo()屬性配置文檔信息(全部)

package com.kk.swagger.config;


import com.kk.swagger.controller.HelloController;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.core.env.Environment;
import org.springframework.core.env.Profiles;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
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;

import java.util.ArrayList;



@Configuration
@EnableSwagger2 // 開啟Swagger2的自動配置
public class SwaggerConfig {


  //分組
  @Bean
  public Docket docket1(){
      return new Docket(DocumentationType.SWAGGER_2).groupName("KK1");
  }

  @Bean
  public Docket docket2(){
      return new Docket(DocumentationType.SWAGGER_2).groupName("KK2");
  }

  @Bean
  public Docket docket3(){
      return new Docket(DocumentationType.SWAGGER_2).groupName("KK3");
  }



  //配置了Swagger的Docket的bean實例
  //enable 是否啟動Swagger 如果為false 則Swagger 不能再瀏覽器中訪問
  @Bean
  public Docket docket(Environment environment){

      //設置要顯示Swagger的環境
      Profiles profiles=Profiles.of("dev","test");
      //獲取項目的環境  通過environment.acceptsProfiles判斷是否處在自己的設定的環境當中
      boolean flag = environment.acceptsProfiles(profiles);


      return new Docket(DocumentationType.SWAGGER_2)
              .apiInfo(apiInfo())
              .groupName("kk")
              .enable(flag)
              .select()
              //RequestHandlerSelectors 配置要掃描接口的方式
              //basePackage 指定要掃描的包
              //any()  掃描全部
              //none()  都不掃描
              //withClassAnnotation 掃描方法上的注解  參數是一個注解的反射對象
          
              .apis(RequestHandlerSelectors.basePackage("com.kk.swagger.controller"))
//                .apis(RequestHandlerSelectors.withClassAnnotation(RestController.class)) 這個只會掃描類上有RestController的方法
          
              //  .paths() 過濾什么路徑
//                .paths(PathSelectors.ant("/kk/**"))
          
              .build();
  }
  private static final Contact DEFAULT_CONTACT =new Contact("KK","HTTP","666@qq.com");
  //配置Swagger信息  apiInfo
  private ApiInfo apiInfo(){
      return new ApiInfo("KK的SwaggerAPI文檔", "Api Documentation",
              "1.0", "urn:tos", DEFAULT_CONTACT,
              "Apache 2.0",
              "http://www.apache.org/licenses/LICENSE-2.0", new ArrayList());
  }



}

application.properties

# 應用名稱
spring.application.name=swagger-springboot
# 應用服務 WEB 訪問端口
server.port=8080
spring.profiles.active=dev

application-dev.properties

server.port=8081

application-test.properties

server.port=8082

測試

Java微服務開發之Swagger詳解

 

4、實體配置

1、新建一個實體類

package com.kk.swagger.pojo;


import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
//@Api(注釋)
@ApiModel("用戶實體類")
public class User {

  @ApiModelProperty("用戶名")
  public String username;
  @ApiModelProperty("密碼")
  public String password;
}

2、只要這個實體在請求接口的返回值上(即使是泛型),都能映射到實體項中:

//只要接口中,返回值存在實體類,它就會被掃描到Swagger中
@PostMapping(value = "/user")
public User user(){
  return new User();
}	

Java微服務開發之Swagger詳解

測試

Java微服務開發之Swagger詳解

Java微服務開發之Swagger詳解

可以給請求的接口配置一些注釋

//Operation 接口  不是放在類上的  而是放在方法上的
@ApiOperation("Hello控制類,Post測試")
@PostMapping(value = "/postt")
public User postt(@ApiParam("用戶名") User user){
return user;
}

Java微服務開發之Swagger詳解

 

5、其他皮膚

導包

<!--        換膚-->
      <!-- https://mvnrepository.com/artifact/com.github.xiaoymin/swagger-bootstrap-ui -->
      <dependency>
          <groupId>com.github.xiaoymin</groupId>
          <artifactId>swagger-bootstrap-ui</artifactId>
          <version>1.9.6</version>
      </dependency>

訪問 http://localhost:8080/doc.html

還有很多,可以網上查查

nrepository.com/artifact/com.github.xiaoymin/swagger-bootstrap-ui -->

com.github.xiaoymin
swagger-bootstrap-ui
1.9.6

**訪問 http://localhost:8080/doc.html**

==還有很多,可以網上查查==

到此這篇關于Java微服務開發之Swagger詳解的文章就介紹到這了,更多相關Java Swagger內容請搜索服務器之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持服務器之家!

原文鏈接:https://blog.csdn.net/weixin_50569789/article/details/120683191

延伸 · 閱讀

精彩推薦
  • Java教程java對象拷貝詳解及實例

    java對象拷貝詳解及實例

    這篇文章主要介紹了java對象拷貝詳解及實例的相關資料,需要的朋友可以參考下...

    Java教程網2042020-09-14
  • Java教程java Runnable接口創建線程

    java Runnable接口創建線程

    這篇文章主要介紹了java Runnable接口創建線程的相關資料,需要的朋友可以參考下...

    duruiqi_fx4492020-11-27
  • Java教程淺談java獲取UUID與UUID的校驗

    淺談java獲取UUID與UUID的校驗

    這篇文章主要介紹了java獲取UUID與UUID的校驗,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著...

    kangyucheng3912019-06-21
  • Java教程Spring Bean三種注入方式詳解

    Spring Bean三種注入方式詳解

    本篇文章主要介紹了Spring Bean三種注入方式詳解,小編覺得挺不錯的,現在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧...

    民團司令12572021-02-01
  • Java教程Java生成隨機數的方法(推薦)

    Java生成隨機數的方法(推薦)

    本篇文章主要介紹了Java生成隨機數的方法,具有很好的參考價值。下面跟著小編一起來看下吧...

    LKJ20173642020-09-22
  • Java教程談談Java中Volatile關鍵字的理解

    談談Java中Volatile關鍵字的理解

    volatile這個關鍵字可能很多朋友都聽說過,或許也都用過。在Java 5之前,它是一個備受爭議的關鍵字,因為在程序中使用它往往會導致出人意料的結果,本...

    小眼兒4262020-04-14
  • Java教程聊聊java變量的初始化之后的默認值

    聊聊java變量的初始化之后的默認值

    這篇文章主要介紹了聊聊java變量的初始化之后的默認值,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教...

    葉子一哥10342021-12-01
  • Java教程微服務通過Feign調用進行密碼安全認證操作

    微服務通過Feign調用進行密碼安全認證操作

    這篇文章主要介紹了微服務通過Feign調用進行密碼安全認證操作,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教...

    向大海走去11642021-09-22
主站蜘蛛池模板: 三级视频网站 | av在线干 | 欧美a v在线播放 | 久久综合久 | 91国内视频在线观看 | 国产一区二区三区久久 | 欧美一级视频在线观看 | 91精品国产乱码久久久久久 | 懂色一区二区三区av片 | 国产成人高清视频 | 亚洲综合自拍 | 国产精品一区二区三区免费视频 | 午夜在线观看视频 | 免费精品视频 | 精品国产乱码久久久久久久软件 | 自拍一区视频 | 亚洲精品在线看 | 欧美福利在线观看 | 久久精品99 | 中文字幕高清免费日韩视频在线 | 欧美精品一区二区三区在线 | 日韩中文字幕视频在线观看 | 亚洲精品久久久一区二区三区 | 黄色网址视频大全 | 国产精品国产三级国产aⅴ原创 | 动漫羞免费网站中文字幕 | 欧美不卡| 欧美日韩在线观看一区二区 | 国产欧美在线 | 亚洲a在线播放 | 国产精品久久久久久久天堂 | 成人在线播放 | 国产在线一区二区三区 | 黄色的视频免费看 | 欧美日韩久 | 午夜视频在线播放 | 亚洲国内精品 | 精品久久国产老人久久综合 | 亚洲免费一区二区 | 小川阿佐美88av在线播放 | 综合激情网 |