• swagger


    API文檔的一種玩法
    嵌入到java code中(YAPI是非嵌入式的)
    項目啓動后,通過生成的link去訪問api,可以查看api使用方法、mock api等


    Base on: spring boot

    安裝
    Add dependence in pom.xml

    <dependency>
    <groupId>io.springfox</groupId>
    <artifactId>springfox-swagger2</artifactId>
    <version>2.9.2</version>
    </dependency>


    Add config in application.properties:

    #apispecProperties
    hkbn.api.title=SiteMORuleAPI
    hkbn.api.description=SiteMORuleAPI
    hkbn.api.version=1.0
    hkbn.switch=true

    Add in weblogic.xml(主要是com.google):

    <container-descriptor>
    <prefer-application-packages>
    <package-name>org.slf4j</package-name>
    <package-name>org.springframework.*</package-name>
    <package-name>com.fasterxml.jackson.*</package-name>
    <package-name>com.google.*</package-name>
    </prefer-application-packages>
    </container-descriptor>

    Add class:

    package hk.com.hkbn.itrbss;
    
    import org.springframework.beans.factory.annotation.Value;
    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.spi.DocumentationType;
    import springfox.documentation.spring.web.plugins.Docket;
    import springfox.documentation.swagger2.annotations.EnableSwagger2;
    
    @Configuration
    @EnableSwagger2
    public class ApiSpecConfig {
    
        @Value("${hkbn.api.title}")
        private String title;
    
        @Value("${hkbn.api.description}")
        private String description;
    
        @Value("${hkbn.api.version}")
        private String version;
    
        @Value("${hkbn.switch}")
        private boolean apiSpecSwitch;
    
    
        @Bean
        public Docket api() {
            Docket docket = new Docket(DocumentationType.SWAGGER_2);
            if (apiSpecSwitch) {
                docket.enable(true);
            } else {
                docket.enable(false);
            }
    
    
            docket.apiInfo(metaData()).select().
                    apis(RequestHandlerSelectors.basePackage("hk.com.hkbn.itrbss.controller")).
                    paths(PathSelectors.any()).build();
            return docket;
        }
    
        private ApiInfo metaData() {
            return new ApiInfoBuilder().title(title).description(description).termsOfServiceUrl("")
                    .version(version).build();
        }
    }

    Add api spec info in Controller class:

    @ApiOperation(value="queryBMOadvancenoticebyaddresscode.",response=List.class)
    @RequestMapping(value="/chk-bmo-notice",method=RequestMethod.GET)
    publicStringgetBmoAdvanceNotice(
    @RequestHeader("addr_ref_value")StringaddrRefValue,
    @RequestHeader("order_type")StringorderType){
    MoRuleVictimDtomoRule=newMoRuleVictimDto();
    moRule.setAddrRefValue(addrRefValue);
    returnmoRuleService.getBmoAdvanceNotice(moRule,orderType);
    }

    使用:https://ip/project_name/swagger-ui.html

  • 相关阅读:
    实现只有0,1,2三种元素的乱序数组的排序
    请说明Request和Session的生命周期
    使用Enumeration和Iterator遍历集合类
    hive中分组取前N个值的实现
    世界知名网站的技术实现(转)
    蚂蚁变大象:浅谈常规网站是如何从小变大的(转)
    Hadoop管理员的十个最佳实践(转)
    internet笔记
    Instagram 架构分析笔记(转)
    Apache Pig入门 –介绍/基本架构/与Hive对比(转)
  • 原文地址:https://www.cnblogs.com/javac/p/15091005.html
Copyright © 2020-2023  润新知