当前位置: 首页 > 知识库问答 >
问题:

JavaSpring应用程序可以利用swagger吗

苏坚成
2023-03-14

我一直在研究swagger,认为它是为我的团队api自动生成文档的一种可能方式http://swagger.io/getting-started/.这似乎很有希望,但我发现他们的文档缺乏。

话虽如此,我有几个非常基本的问题。

  1. 是否可以只使用Spring应用程序来使用swagger?我们的应用程序既不是jersey也不是JAX-RS应用程序。有人知道普通Spring应用程序是否可以与swagger一起使用吗?如果是,是否可以提供一个链接或一组说明

我找到了这个链接http://blog.zenika.com/index.php?post/2013/07/11/Documenting-a-REST-API-with-Swagger-and-Spring-MVC但是他们浏览了关于设置属性文件的部分。

共有3个答案

年文柏
2023-03-14

如上所述,springfox是springmvc的一流的招摇过市库。您还可以使用spring配置,如swagger示例存储库中所示。

通过访问http://editor.swagger.io并创建一个昂首阔步的定义,您可以看到这种工作的示例。从那里,您可以下载一个带有swagger支持的sping-mvc服务器。

曾丰茂
2023-03-14

对我来说,以下工作:

将以下依赖项添加到pom中:

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

然后将@EnableSwagger 2添加到spring配置文件中,并注册了swagger UI所需的资源处理程序,如:

@Configuration
public class YourConfigFileHere extends WebMvcConfigurerAdapter {


    @Override
    public void addResourceHandlers(ResourceHandlerRegistry registry) {
        registry.addResourceHandler("/resources/**").addResourceLocations(
            "/resources/");

        registry.addResourceHandler("swagger-ui.html").addResourceLocations(
            "classpath:/META-INF/resources/");

        registry.addResourceHandler("/webjars/**").addResourceLocations(
            "classpath:/META-INF/resources/webjars/");
    }

    // rest of the configuration
}

这将使基本的昂首阔步的用户界面启动并运行。如果要进行自定义,可以添加一个带@EnableSwagger2注释的swagger配置文件,并使用@导入将其导入到Spring配置文件中。

对于本地环境,您可以在以下位置访问swagger ui:

http://localhost:8080/{context-root}/swagger-ui.html
曹理
2023-03-14

有一个页面专门支持昂首阔步的框架

你要找的是SpringFox。

针对使用Spring构建的API的自动化JSON API文档

基本上,您可以使用像这样指向API上下文的Docket对象来应用配置。您必须慢慢来,因为有一点配置可以让它工作,更不用说根据您的应用程序需求扩展它了。

 @Bean
    public Docket documentation() {
        return new Docket()
          .select()
            .apis(RequestHandlerSelectors.any())
            .paths(regex("/api/.*"))
            .build()
          .pathMapping("/")
          .apiInfo(metadata());
    }

您可能已经知道,您可以在许多其他功能中添加注释,如可能的HTTP响应代码等。确实很有前途。

@ApiOperation(value = "doStuff", nickname = "doStuff", response = DoStuffResult.class)
@Responses({
    @ApiResponse(code =  404, message ="Not found", response = GenericError.class),
    @ApiResponse(code =  400, message ="Invalid input", response = GenericError.class)
})
@RequestMapping(method = RequestMethod.GET, produces = "application/json")
public ResponseEntity<?> doStuff(@RequestBody DoStuffCommand command) {
    // Stuff
}

这是我在网上能找到的最好的例子,非常简短和客观。

 类似资料:
  • 我有一个使用Spring Boot2.2.4.Release的REST应用程序。我的REST控制器的注释如下 Spring Boot web应用程序是否可以使用Swagger(版本2.1.1中的swagger-core,...)? 有一个SpringFox项目,但它不是最新的。springdoc-openapi也是可用的。但是直接使用Swagger会是我的第一个想法。

  • [见底部更新]我试图通过Tomcat启动Spring Web应用程序,但是当我在浏览器中输入urlhttp://localhost:8080/demo-mvc/时,我收到了404错误和一条消息“请求的资源[/demo-mvc/]不可用”。起初,我试图通过NetBeans部署应用程序,它说部署成功,但是在浏览器启动时,我收到了404错误。我检查了Tomcat/webapp目录,不知为什么没有找到应用

  • 我试图从我的flutter启动第三方应用,但我没有任何进展。在这种情况下,我试图通过单击Flutter中凸起的按钮打开应用程序“Amazon Alexa”。有人能帮我吗? 我试图使用url_launcher,但它无法与第三方应用程序配合使用。

  • 问题内容: 我试图将Java servlet变成Mule Web服务,但是我的程序有多个类。我看过很多关于在Java组件中将POJO与Mule一起使用的教程,但是从来没有一个带有多个类的程序。如何才能做到这一点? 编辑:我的servlet当前正在tomcat服务器上运行。它接收一个包含搜索详细信息的xml文档,搜索一个数据库,然后输出一个包含搜索结果的xml文档。xml的解析和生成以及数据库的连接

  • 我可以用这样的代码在市场上发布我的应用程序吗 我阅读那个严格模式只是为了调试,当我发布应用程序时,我必须删除它。

  • 今天我发现我的应用程序无法访问,然后我登录我的服务器,我发现应用程序的线程是正常的,但是CPU负载太高了。 然后,我想使用命令,但它指出。现在我发现GC日志停留在中,没有其他日志。 然后,我使用了命令,奇怪的事情发生了,CPU正常了,我的服务器也正常了,GC日志也正常了,第一行是,jstack结果的可运行线程都是GC线程,像