日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網(wǎng)為廣大站長(zhǎng)提供免費(fèi)收錄網(wǎng)站服務(wù),提交前請(qǐng)做好本站友鏈:【 網(wǎng)站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(wù)(50元/站),

點(diǎn)擊這里在線咨詢客服
新站提交
  • 網(wǎng)站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會(huì)員:747

前言

前后端分離開(kāi)發(fā)模式中,api文檔是最好的溝通方式。今天就來(lái)說(shuō)一說(shuō)如何整合Swagger生成一套漂亮、美觀、實(shí)用的接口文檔。
源碼傳送門:
https://gitee.com/huoqstudy/xiliu-admin.git

一、Swagger介紹

Swagger 是一個(gè)規(guī)范和完整的框架,用于生成、描述、調(diào)用和可視化 RESTful 風(fēng)格的 Web 服務(wù),它有著如下的優(yōu)點(diǎn):
1. 及時(shí)性 (接口變更后,能夠及時(shí)準(zhǔn)確地通知相關(guān)前后端開(kāi)發(fā)人員)
2. 規(guī)范性 (并且保證接口的規(guī)范性,如接口的地址,請(qǐng)求方式,參數(shù)及響應(yīng)格式和錯(cuò)誤信息)
3. 一致性 (接口信息一致,不會(huì)出現(xiàn)因開(kāi)發(fā)人員拿到的文檔版本不一致,而出現(xiàn)分歧)
4. 可測(cè)性 (直接在接口文檔上進(jìn)行測(cè)試,以方便理解業(yè)務(wù))

二、配置Swagger

1. 添加依賴

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

2. 創(chuàng)建Swagger2配置文件

代碼如下(示例):

@Configuration
@EnableSwagger2
public class Swagger2Config {

    @Bean
    public Docket apiConfig() {
        return new Docket(DocumentationType.SWAGGER_2)
                // 調(diào)用apiInfo方法,創(chuàng)建一個(gè)ApiInfo實(shí)例,里面是展示在文檔頁(yè)面信息內(nèi)容
                .apiInfo(apiInfo());
    }
    private ApiInfo apiInfo() {
        return new ApiInfoBuilder()
                //大標(biāo)題
                .title("接口文檔")
                //詳細(xì)描述
                .description("接口文檔")
                //版本
                .version("1.0")
                //作者
                .contact(new Contact("xiliu", "http://www.xxx.com", "277769738@qq.com"))
                .build();
    }

}

3. 重啟服務(wù)查看接口

訪問(wèn)路徑:
http://localhost:8081/swagger-ui.html ,出現(xiàn)生成的文檔頁(yè)面。但是作為一個(gè)有審美追求的人,這ui也太難看了吧,果斷放棄,更換成Knife4j

還在手寫(xiě)api接口文檔?試試它吧

 

4. 使用Knife4j

Knife4j的前身是swagger-bootstrap-ui,前身swagger-bootstrap-ui是一個(gè)純swagger-ui的ui皮膚項(xiàng)目。但是隨著項(xiàng)目的發(fā)展,面對(duì)越來(lái)越多的個(gè)性化需求,不得不編寫(xiě)后端JAVA代碼以滿足新的需求,因此,項(xiàng)目正式更名為knife4j,取名knife4j是希望它能像一把匕首一樣小巧、輕量,并且功能強(qiáng)悍,更名也是希望把她做成一個(gè)為Swagger接口文檔服務(wù)的通用性解決方案,不僅僅只是專注于前端Ui前端。

4.1 添加依賴

需要?jiǎng)h除原來(lái)引用的swagger依賴

<dependency>
	<groupId>com.github.xiaoymin</groupId>
	<artifactId>knife4j-spring-boot-starter</artifactId>
	<version>2.0.7</version>
</dependency>

4.2 修改配置類

@Configuration
@EnableSwagger2WebMvc
public class Swagger2Config {

    @Bean(value = "defaultApi2")
    public Docket defaultApi2() {
        Docket docket=new Docket(DocumentationType.SWAGGER_2)
                .apiInfo(new ApiInfoBuilder()
                        .title("接口文檔")
                        .description("# 接口文檔")
                        .termsOfServiceUrl("http://www.xx.com/")
                        .contact("277769738@qq.com")
                        .version("1.0")
                        .build())
                //分組名稱
                .groupName("2.X版本")
                .select()
                //這里指定Controller掃描包路徑
                .apis(RequestHandlerSelectors.basePackage("com.java.xiliu"))
                .paths(PathSelectors.any())
                .build();
        return docket;
    }

    /*@Bean
    public Docket apiConfig() {
        return new Docket(DocumentationType.SWAGGER_2)
                // 調(diào)用apiInfo方法,創(chuàng)建一個(gè)ApiInfo實(shí)例,里面是展示在文檔頁(yè)面信息內(nèi)容
                .apiInfo(apiInfo());
    }
    private ApiInfo apiInfo() {
        return new ApiInfoBuilder()
                //大標(biāo)題
                .title("接口文檔")
                //詳細(xì)描述
                .description("接口文檔")
                //版本
                .version("1.0")
                //作者
                .contact(new Contact("xiliu", "http://www.xxx.com", "277769738@qq.com"))
                .build();

    }*/

}

4.3 重啟服務(wù)查看接口

訪問(wèn)地址:
http://localhost:8081/doc.html,這個(gè)ui界面看起來(lái)就更美觀,更符合國(guó)人的使用習(xí)慣。

還在手寫(xiě)api接口文檔?試試它吧

 

5. 定義接口說(shuō)明和參數(shù)說(shuō)明

定義在類上:@Api

定義在方法上:@ApiOperation

定義在參數(shù)上:@ApiParam

@Api(tags = "用戶管理")
@RestController
@RequestMApping("/ucenter/member")
public class MemberController {

    @Autowired
    private MemberService memberService;

    @ApiOperation(value = "所有用戶列表")
    @GetMapping(value = "/getAll")
    public List<Member> list(){
        return memberService.list(null);
    }

    @ApiOperation(value = "根據(jù)id刪除用戶")
    @PostMapping(value = "del/{memberId}")
    public boolean deleteById(
            @ApiParam(name = "memberId", value = "用戶ID", required = true)
            @PathVariable Long memberId){
        return memberService.removeById(memberId);
    }

    @ApiOperation(value = "保存用戶")
    @PostMapping(value = "save")
    public boolean save(
            @ApiParam(name = "member", value = "用戶對(duì)象json", required = true)
            @RequestBody Member member){
        if (null == member.getMemberId()) {
            return memberService.save(member);
        }
        return memberService.updateById(member);
    }

}
還在手寫(xiě)api接口文檔?試試它吧

 

總結(jié)

感謝大家的閱讀,以上就是今天要講的內(nèi)容,本文簡(jiǎn)單介紹了如何整合Swagger生成api接口文檔,雖然很多人噴Swagger,不好用,基于注解,代碼入侵很強(qiáng),等等 很多原因。但總體來(lái)看,swagger發(fā)展至今,包括在各個(gè)語(yǔ)言,NodeJs、.net、java、php等等,它可以說(shuō)是一個(gè)有些接口規(guī)范的東西,從開(kāi)始,到一步步規(guī)范,其實(shí)是一個(gè)很艱難的過(guò)程,任何事物,都不是盡善盡美的,swagger也是一樣,至少它給這么多語(yǔ)言提供了一種文檔生成的解決方案,其價(jià)值就遠(yuǎn)超它本身的缺點(diǎn)。

最后弱弱地問(wèn)一句,你們的項(xiàng)目用swagger了嗎?

分享到:
標(biāo)簽:接口 文檔 api
用戶無(wú)頭像

網(wǎng)友整理

注冊(cè)時(shí)間:

網(wǎng)站:5 個(gè)   小程序:0 個(gè)  文章:12 篇

  • 51998

    網(wǎng)站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會(huì)員

趕快注冊(cè)賬號(hào),推廣您的網(wǎng)站吧!
最新入駐小程序

數(shù)獨(dú)大挑戰(zhàn)2018-06-03

數(shù)獨(dú)一種數(shù)學(xué)游戲,玩家需要根據(jù)9

答題星2018-06-03

您可以通過(guò)答題星輕松地創(chuàng)建試卷

全階人生考試2018-06-03

各種考試題,題庫(kù),初中,高中,大學(xué)四六

運(yùn)動(dòng)步數(shù)有氧達(dá)人2018-06-03

記錄運(yùn)動(dòng)步數(shù),積累氧氣值。還可偷

每日養(yǎng)生app2018-06-03

每日養(yǎng)生,天天健康

體育訓(xùn)練成績(jī)?cè)u(píng)定2018-06-03

通用課目體育訓(xùn)練成績(jī)?cè)u(píng)定