在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

如何搭建 Swagger API文檔平臺

科技綠洲 ? 來源:Java技術(shù)指北 ? 作者:Java技術(shù)指北 ? 2023-10-09 15:37 ? 次閱讀

相信大家平時(shí)開發(fā)的過程中,都會使用到 API文檔工具吧?大家都在使用什么呀?Java docsI/O Docs, apiary.io, Docco, Dexy, Doxygen, TurnAPI,Swagger。今天我就來教大家如何使用 Swagger 搭建 API 文檔,并且配置權(quán)限使用。畢竟開發(fā)文檔還是內(nèi)容使用的為好,萬一上線到生產(chǎn)環(huán)境,沒有關(guān)swagger 又沒有設(shè)置權(quán)限,那可不GG啦。

好,我們這就上手搞起來。

我們將使用 SpringfoxSwagger 2 規(guī)范的實(shí)現(xiàn),并通過 JWT 的方式來設(shè)置權(quán)限。

配置SwaggerUI

第一步:向Spring Boot項(xiàng)目添加Maven依賴項(xiàng)

打開 pom.xml 文件,添加 springfox-boot-startermaven 依賴中。

< dependency >
    < groupId >io.springfox< /groupId >
    < artifactId >springfox-boot-starter< /artifactId >
    < version >3.0.0< /version >
< /dependency >

添加 springfox-boot-starter 依賴后,spring boot 能啟動配置功能,配置好 swagger,所以我們不需要手動添加注解來啟用 Swagger。

我們啟動一下項(xiàng)目訪問 Swagger 文檔的 JSON API , 來看看 Springfox 是否正常運(yùn)行。我們可以在瀏覽器中輸入以下URL:

http://localhost:8080/v3/api-docs

圖片

能夠看到以上的類似結(jié)果,說明我們第一步已經(jīng)成功了。

第二步:將 Swagger 2 集成到 Spring Boot 項(xiàng)目中去

我們創(chuàng)建一個(gè) SwaggerConfig 類,并用 @Configuration 注解來注釋。Swagger 的配置主要圍繞著 Docket 對象來完成。我們可以在 SwaggerConfig 類中添加以下代碼。

@Configuration
public class SwaggerConfiguration {
    private ApiInfo apiInfo() {
        return new ApiInfo("Blog REST APIs",
                "REST APIs for Blog Application",
                "1.0",
                "Terms of service",
                new Contact("xxx", "xxx", "xxx"),
                "License of API",
                "API license URL",
                Collections.emptyList());
    }
    @Bean
    public Docket api() {
        return new Docket(DocumentationType.SWAGGER_2)
                .apiInfo(apiInfo())
                .select()
                .apis(RequestHandlerSelectors.any())
                .paths(PathSelectors.any())
                .build();
    }
}

在構(gòu)造 Docket 對象之后,它的 select() 方法返回了 ApiSelectorBuilder 的一個(gè)實(shí)例,它提供了一種控制 Swagger 所暴露的端點(diǎn)的方法。

我們可以通過使用 RequestHandlerSelectorsPathSelectors 配置選擇 RequestHandlers 的路徑。如果兩者兩者使用 any() , 那就說明配置所有的 API 都能在 Swagger 上顯示了。

第三步:訪問 Swagger UI

Swagger UI 是一個(gè)內(nèi)置的解決方案,使用戶與 Swagger 生成的API文檔的交互變得更加容易。我們在瀏覽器中輸入下面URL即可查看:

http://localhost:8080/swagger-ui/

圖片

結(jié)果應(yīng)該是這樣的。

好,到這里 Swagger 的使用配置就算結(jié)束了。那接下來我們來看看怎么用JWT增加權(quán)限配置呢?

配置 JWT

JWT 是什么?相信大家都一定聽過吧,它就是 JSON Web Token 的縮寫。話不多說,直接上手代碼配置起來。在 SwaggerConfig 里面新增代碼。

我們先來配置 ApiKey 作為 JWT認(rèn)證 header 信息:

public static final String AUTHORIZATION_HEADER = "Authorization";
    private ApiKey apiKey(){
        return new ApiKey("JWT", AUTHORIZATION_HEADER, "header");
    }

下一步,我們配置 JWTSecurityContext , 對 SecurityContext 配置全局的 AuthorizationScope :

private SecurityContext securityContext(){
        return SecurityContext.builder().securityReferences(defaultAuth()).build();
    }
    private List< SecurityReference > defaultAuth(){
        AuthorizationScope authorizationScope = new AuthorizationScope("global", "accessEverything");
        AuthorizationScope[] authorizationScopes = new AuthorizationScope[1];
        authorizationScopes[0] = authorizationScope;
        return Arrays.asList(new SecurityReference("JWT", authorizationScopes));
    }

然后我們配置 Docket 對象,對 Docket 對象設(shè)置 SecurityContext ,SecuritySchemes。

@Bean
    public Docket api(){
        return new Docket(DocumentationType.SWAGGER_2)
                .apiInfo(apiInfo())
                .securityContexts(Arrays.asList(securityContext()))
                .securitySchemes(Arrays.asList(apiKey()))
                .select()
                .apis(RequestHandlerSelectors.any())
                .paths(PathSelectors.any())
                .build();
    }

到這里,JWT 就配置完成了,感覺是不是挺簡單的?好,我們再來運(yùn)行一下,看看效果

圖片

我們點(diǎn)擊右上角的 Authorize 按鈕,彈出一個(gè)輸入 apiKey 的彈出層。

圖片

輸入 api key 之后,點(diǎn)擊 Authorize 認(rèn)證通過,我們就又能調(diào)用 API 接口調(diào)試了。

用注解定制 Swagger API 文檔

為了能夠定制 Swagger 文檔,swagger-core 提供了一套注解來聲明和操作輸出。

Swagger-core 注解:

NameDescription
@Api標(biāo)記為 Swagger 資源
@ApiModel標(biāo)記為 Swagger 模型
@ApiModelProperty模型字段的屬性說明
@ApiOperationhttp接口的說明
@ApiParamhttp 接口參數(shù)說明

更多詳細(xì)的說明可以參考 GitHub 上的解釋:https://github.com/swagger-api/swagger-core/wiki/annotations

現(xiàn)在我們就舉個(gè)例子來解釋怎么使用這些個(gè)注解, 首先來看 @Api@ApiOperation 怎么使用:

@Api(value = "CRUD Rest APIs for Post resources")
@RestController
@RequestMapping()
public class PostController {
    @ApiOperation(value = "Get All Posts REST API")
    @GetMapping("/api/v1/posts")
    public PostResponse getAllPosts(
            @RequestParam(value = "pageNo", defaultValue = "0", required = false) int pageNo,
            @RequestParam(value = "pageSize", defaultValue = "100", required = false) int pageSize
    ){
        ...
    }
 
}

再來看看 @ApiModel@ApiModelProperty 怎么使用:

@ApiModel(description = "Post model information")
@Data
public class PostDto {
    @ApiModelProperty(value = "Blog post id")
    private long id;
}

是不是感覺 so easy?

總結(jié)

通過這篇文章我們學(xué)習(xí)了如何通過 Springfox 來搭建 Swagger API 文檔平臺,然后也學(xué)會了如何設(shè)置 JWT 的方式做認(rèn)證,保證 API 不會被別人能夠惡意使用。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • API
    API
    +關(guān)注

    關(guān)注

    2

    文章

    1556

    瀏覽量

    63362
  • 瀏覽器
    +關(guān)注

    關(guān)注

    1

    文章

    1040

    瀏覽量

    36009
  • URL
    URL
    +關(guān)注

    關(guān)注

    0

    文章

    139

    瀏覽量

    15761
  • 代碼
    +關(guān)注

    關(guān)注

    30

    文章

    4883

    瀏覽量

    70093
收藏 人收藏

    評論

    相關(guān)推薦
    熱點(diǎn)推薦

    swagger和smart-doc的區(qū)別

    首先,Swagger 這個(gè)工具能夠自動生成 API 接口文檔,在線調(diào)試,節(jié)省了很多書寫文檔的時(shí)間,非常強(qiáng)大。 但是,想要文檔生成的合格,還是
    的頭像 發(fā)表于 09-30 10:01 ?629次閱讀
    <b class='flag-5'>swagger</b>和smart-doc的區(qū)別

    關(guān)于IAR搭建開發(fā)平臺

    請教大神:小弟剛?cè)胄蠸TM32,想問如何用IAR搭建STM32的開發(fā)平臺,網(wǎng)上找了些文檔看,還是不太清楚,望大神不吝賜教
    發(fā)表于 07-03 09:04

    紫外刻寫光纖光柵平臺搭建提供

    紫外刻寫光纖光柵平臺搭建提供從平臺設(shè)計(jì)、核心光路系統(tǒng)設(shè)計(jì),平臺搭建、模塊調(diào)諧到用戶培訓(xùn)完整的刻寫平臺
    發(fā)表于 12-29 20:39

    Tasking平臺搭建流程

    在QQ群里看到有人問Tasking平臺搭建的問題,正好以前做過的這類文檔,發(fā)上來共享一下,希望能有點(diǎn)幫助Tasking-平臺搭建.pdf (
    發(fā)表于 12-14 10:39

    在哪里查看HarmonyOS的API文檔

    如何查看HarmonyOS的API文檔?
    發(fā)表于 04-02 15:13

    缺少VGlite字體渲染api文檔,求分享

    我試圖使用 vglite api 在 MIMXRT1166/1176 上使用 verisilicon gpu 渲染圖形,并且特別缺乏關(guān)于此的文檔。 我能夠很好地初始化 GPU 并渲染矢量和光柵對象
    發(fā)表于 04-24 06:42

    如何搭建API程序_框架api接口規(guī)范

    基于互聯(lián)網(wǎng)的應(yīng)用正變得越來越普及,在這個(gè)過程中,有更多的站點(diǎn)將自身的資源開放給開發(fā)者來調(diào)用。對外提供的API 調(diào)用使得站點(diǎn)之間的內(nèi)容關(guān)聯(lián)性更強(qiáng),同時(shí)這些開放的平臺也為用戶、開發(fā)者和中小網(wǎng)站帶來了更大的價(jià)值。搭建
    發(fā)表于 01-04 17:48 ?1.2w次閱讀
    如何<b class='flag-5'>搭建</b><b class='flag-5'>API</b>程序_框架<b class='flag-5'>api</b>接口規(guī)范

    windows+apach+oracle+php環(huán)境搭建文檔

    windows+apach+oracle+php環(huán)境搭建文檔(2020空間電源技術(shù)學(xué)術(shù)研討會)-該文檔為windows+apach+oracle+php環(huán)境搭建文檔總結(jié)文檔,是一份不錯(cuò)
    發(fā)表于 09-22 14:54 ?10次下載
    windows+apach+oracle+php環(huán)境<b class='flag-5'>搭建文檔</b>

    如何通過ApiFox來構(gòu)建API場景測試

    在開發(fā)前后臺分離項(xiàng)目并且通過不同團(tuán)隊(duì)來實(shí)現(xiàn)的時(shí)候,如何將后臺設(shè)計(jì)的 API 準(zhǔn)確的傳達(dá)到前臺,是一個(gè)非常重要的工作。為了簡化這個(gè)過程,開源社區(qū)做了很多努力,比如 protobuf技術(shù),swagger
    的頭像 發(fā)表于 09-01 10:48 ?1809次閱讀

    深度“盤”一下Eolink這款免費(fèi)API協(xié)作平臺

    使用 Flasgger 得到一個(gè) Swagger UI 具體步驟,不做重點(diǎn)描述,咱們的目標(biāo)是打通 Swagger 和 Eolink,讓 API 研發(fā)資產(chǎn)可以盤活,Swagger 簡易部
    的頭像 發(fā)表于 12-15 14:59 ?1249次閱讀

    API+DevOps:華為云API Arts一體化平臺,端到端呵護(hù)您的API

    華為云API Arts是API全生命周期一體化協(xié)作平臺,支持開發(fā)者一站式高效實(shí)現(xiàn)API設(shè)計(jì)、API開發(fā)、
    的頭像 發(fā)表于 03-01 15:45 ?925次閱讀
    <b class='flag-5'>API</b>+DevOps:華為云<b class='flag-5'>API</b> Arts一體化<b class='flag-5'>平臺</b>,端到端呵護(hù)您的<b class='flag-5'>API</b>

    ChatGPT API文檔

    補(bǔ)充下這個(gè)API文檔,幫助理解。感覺prompt(提示)、Embeddings(嵌入)、Fine-tunes(微調(diào))有 點(diǎn)牛逼。
    發(fā)表于 06-06 17:38 ?0次下載

    swagger和smart-doc的區(qū)別

    首先,Swagger 這個(gè)工具能夠自動生成 API 接口文檔,在線調(diào)試,節(jié)省了很多書寫文檔的時(shí)間,非常強(qiáng)大。 但是,想要文檔生成的合格,還是
    的頭像 發(fā)表于 09-30 16:08 ?1530次閱讀
    <b class='flag-5'>swagger</b>和smart-doc的區(qū)別

    紅綠燈倒計(jì)時(shí)API開發(fā)文檔

    百度紅綠燈倒計(jì)時(shí)API開發(fā)文檔
    發(fā)表于 06-30 11:53 ?3次下載

    集成API設(shè)計(jì)+測試+文檔管理,全新一站式解決方案SmartBear API Hub功能介紹

    SmartBear全新推出API Hub,助力高效應(yīng)對API開發(fā)挑戰(zhàn)! API Hub專為API開發(fā)者、架構(gòu)師、產(chǎn)品經(jīng)理和QA團(tuán)隊(duì)打造,將設(shè)計(jì)、測試、治理和
    的頭像 發(fā)表于 04-08 17:52 ?185次閱讀
    集成<b class='flag-5'>API</b>設(shè)計(jì)+測試+<b class='flag-5'>文檔</b>管理,全新一站式解決方案SmartBear <b class='flag-5'>API</b> Hub功能介紹
    主站蜘蛛池模板: 国产主播精品在线 | 日本janpanese护士bus中国 | 国产情侣真实露脸在线最新 | 亚洲高清一区二区三区 | 一区在线观看视频 | 成 人 免费 黄 色 视频 | 久久九九国产精品怡红院 | 黄色污网站在线观看 | 性xxxxhd高清 | 全免费午夜一级毛片真人 | 欧美成人伊人十综合色 | 91精品国产91久久久久青草 | 国产精品福利一区二区亚瑟 | 欧美三级在线观看视频 | 天堂资源在线bt种子8 | 爱操视频在线观看 | 韩国理论片在线看2828dy | 免费高清在线爱做视频 | 午夜亚洲福利 | 美女扒开尿口给男人桶视频免费 | 久久美女精品国产精品亚洲 | 国产综合久久久久影院 | 欧美巨大xxxx做受中文字幕 | 性做久久久久久 | 欧美福利专区 | 亚洲视频在线一区二区三区 | 亚洲精品福利你懂 | 播五月婷婷 | 九九99视频在线观看视频观看 | 成人最新午夜免费视频 | 爽好舒服快给老师 | 欧美激情综合亚洲五月蜜桃 | 亚洲毛片免费在线观看 | 三级在线免费观看 | 国产欧美精品午夜在线播放 | 欧美一区中文字幕 | 黄免费网站 | 狠狠色丁香婷婷综合久久片 | 性欧美日韩 | 人人干人 | 一区二区三区亚洲视频 |