首页 热点资讯 义务教育 高等教育 出国留学 考研考公

swagger ui中parameter type的类型为query是什么意思

发布网友 发布时间:2022-04-26 22:45

我来回答

3个回答

好二三四 时间:2022-05-22 06:32

<link rel="stylesheet" href="https://js.how234.com/jslib/syntaxhighlighter/styles/shCore.css" type="text/css" /><link rel="stylesheet" href="https://js.how234.com/jslib/syntaxhighlighter/styles/shThemeDefault.css" type="text/css" /><script type="text/javascript" src="https://js.how234.com/third-party/SyntaxHighlighter/shCore.js"></script><style>pre{overflow-x: auto}</style>

Swagger UI 简介

Swagger UI允许任何人都可以可视化API资源并与之交互,而无需任何实现逻辑。它是根据OpenAPI(以前称为Swagger)规范自动生成的,具有可视化文档,可简化后端实现和客户端使用。

SwaggerUI 特点

1、无依赖,UI可以在任何开发环境中使用,无论是本地还是在Web端中。

2、人性化,允许最终开发人员轻松地进行交互,并尝试API公开的每个操作,以方便使用。

3、易于浏览,归类整齐的文档可快速查找并使用资源和端点。

4、所有浏览器支持,Swagger UI 在所有主要浏览器中均可使用,以适应各种可能的情况。

5、完全可定制,通过完整的源代码访问方式以所需方式设置和调整Swagger UI。

6、完整的OAS支持,可视化Swagger 2.0或OAS 3.0中定义的API。

关于swagger-ui的使用过程是怎么样的?

导入jar包

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

编写SwaggerConfig配置文件

/**
 */
@EnableSwagger2
@Configuration
public class SwaggerConfig {
    @Bean
    public Docket createRestApi() {
        return new Docket(DocumentationType.SWAGGER_2)
                .apiInfo(apiInfo())
                .select()
                //为当前包路径,控制器类包
                .apis(RequestHandlerSelectors.basePackage("com.stu.stusystem.controller"))
                .paths(PathSelectors.any())
                .build();
    }
    //构建 api文档的详细信息函数
    private ApiInfo apiInfo() {
        return new ApiInfoBuilder()
                //页面标题
                .title("管理系统API接口文档")
                //创建人
                .contact(new Contact("cxt", "http://localhost", "10******34@qq.com"))
                //版本号
                .version("1.0")
                //描述
                .description("系统API描述")
                .build();
    }
}

2)指定静态文件地址

在swagger文件生成后需要指定下文件存放的地方。

/**
 * 设置静态文件地址
 */
@Component
public class WebConfigImpl implements WebMvcConfigurer {
    @Override
    public void addResourceHandlers(ResourceHandlerRegistry registry) {
        registry.addResourceHandler("/swagger-ui.html").addResourceLocations("classpath:/META-INF/resources/");
        registry.addResourceHandler("/static/**").addResourceLocations("classpath:/static/");
    }
}

3)放开swagger页面相关请求资源

比如shiro中需要设置这几项

       filterChainDefinitionMap.put("/v2/api-docs/**", "anon");
        filterChainDefinitionMap.put("/swagger-ui.html", "anon");
        filterChainDefinitionMap.put("/swagger-resources/**", "anon");
        filterChainDefinitionMap.put("/webjars/springfox-swagger-ui/**", "anon");

4)关于API文档注解

放在Controller方法上面注解

// tags 表示分组,页面中的接口进行分组
@ApiOperation(value="接口名称" ,notes="接口说明", tags="接口属于哪个分组", httpMethod="接口请求方式")
// 参数说明
@ApiImplicitParams({
    @ApiImplicitParam(name="参数一", value="对参数的说明", required=true [是否必须], dataType="String")
    ……
})
// 请求成功响应格式
@ApiRespones({
    @ApiResponse(code=200, message="请求成功", response=AjaxResponse.class)    
})

放在Bean上面

@ApiModel(value = "这个Bean的说明")
@ApiModelProperty(value = "这个属性的说明", example="1,2,3") // example 中的值表示这个属性都可以返回那些值

5) swagger导出离线文档

Swagger文档 -> Asciidoc文档-> Html/pdf 文档
-> Markdown文档

1)导入需要的jar包

<!-- swagger 导出需要的jar-->
        <dependency>
            <groupId>io.github.swagger2markup</groupId>
            <artifactId>swagger2markup</artifactId>
            <version>1.3.1</version>
        </dependency>

2)编写测试类

需要在pom文件中添加Test测试类的jar支持

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
            <exclusions>
                <exclusion>
                    <groupId>org.junit.vintage</groupId>
                    <artifactId>junit-vintage-engine</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
@ExtendWith(SpringExtension.class)//@RunWith(SpringRunner.class)   // Junit4 开发者使用这个注解@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.DEFINED_PORT)public class ImportSwagger {
    @Test
    public void generateAsciiDocs() throws Exception {
        Swagger2MarkupConfig config = new Swagger2MarkupConfigBuilder()
                .withMarkupLanguage(MarkupLanguage.MARKDOWN) // 设置生成格式Markdown                .withOutputLanguage(Language.ZH) // 设置语言中文                .withPathsGroupedBy(GroupBy.TAGS)
                .withGeneratedExamples()
                .withoutInlineSchema()
                .build();
        Swagger2MarkupConverter.from(new URL("http://127.0.0.1:2020/v2/api-docs")) // 复制到浏览器中可以看到JSION数据的地址                .withConfig(config)
                .build()
                .toFile(Paths.get("src/main/resources/docs"));  // 这里注意,src前面不能有 “/”    }}

结果:导出成功的Markdown文档

以上就是小编今天的分享了,希望可以帮助到大家。

热心网友 时间:2022-05-22 03:40

paramType:参数放在哪个地方
paramType用于swagger ui 生成参数的输入格式。
paramType 有五个可选值 : path, query, body, header, form
不举个栗子你们是看不懂的:设置paramType 为query,填写参数 id = 1,生成:
curl -X GET --header 'Accept: application/json' 'http://localhost:9000/getData?id=1'

填其他4个参数,发送这个http请求的格式就会发生变化,会影响后台接收数据的方式

热心网友 时间:2022-05-22 04:58

现在多数的项目开发中,网站和移动端都需要进行数据交互和对接,这少不了使用REST编写API接口这种场景。例如我目前的工作,移动端交由了另一团队开发,不同开发小组之间就需要以规范和文档作为标准和协作基础。良好的文档可以让开发事半功倍,而作为又懒又要效率又能交代的码农,当然最希望一切自动化,或用小聪明来找到最适合的工具。
Swagger-UI简单而一目了然。它能够纯碎的基于html+javascript实现,只要稍微整合一下便能成为方便的API在线测试工具。项目的设计架构中一直提倡使用TDD(测试驱动)原则来开发,swagger-ui在这方面更是能提供很大帮助。
Swagger-UI更倾向于在线测试接口和数据,但其核心是一个javascript插件,只要稍作修改,便能按需求定制出不同格式的说明文档,在github上更是基于它集成到各种语言环境,分支众多。
其官方提供了一个离线版本,其使用方法十分简单:直接在js格式的资源文件中录入REST API的json信息,便能容易地生成不同模块下的API列表,每个API接口描述和参数、请求方法都能在每个json数组中定制。下面是目前项目中使用到的部分预览图

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com