我谷歌了一下,但是所有关于昂首阔步留档的例子都使用了类。我想包括接口,因为读者感兴趣的是API而不是实现。
这是我的密码:
包括所需的maven依赖项:
<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>
我的SpringBoot应用程序:
package com.manojk.demo;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class DemoApplication {
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
}
我的RestController接口
package com.manojk.demo;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
@RequestMapping(value = "/") // this annotation needed for swagger-ui to work
public interface HelloWorldControllerInterface {
@GetMapping
String helloWorld();
}
和实施
package com.manojk.demo;
import org.springframework.stereotype.Component;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@Component // this annotation needed to initialize this controller
public class HelloWorldController implements HelloWorldControllerInterface {
@Override
public String helloWorld(){
return "Hello World";
}
}
这一切都由所需的昂首阔步配置支持:
package com.manojk.demo;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import springfox.documentation.builders.RequestHandlerSelectors;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2;
import static springfox.documentation.builders.PathSelectors.regex;
/**
* Configuration class for Swagger REST API documentation
*
*/
@Configuration
@EnableSwagger2
/**
* Run nad hit http://localhost:8080/swagger-ui.html to see it working
*/
public class SwaggerConfig {
/**
* @return Swagger Docker
*/
@Bean
public Docket api() {
return new Docket(DocumentationType.SWAGGER_2)
.select()
// .apis(RequestHandlerSelectors.basePackage("com.siemens.oss.domain.controller.service")) # does not work for interfaces
.apis(RequestHandlerSelectors.basePackage("com.manojk.demo")) // works for implementations
.paths(regex("/.*"))
.build();
}
}
该代码可作为maven项目在https://github.com/MKhotele/spring-examples/tree/master/demo.
http://localhost:8080/swagger-ui.html显示"Hello World Controller",但没有显示"Hello World Controller Interface"。
有可能使招摇过市包括接口吗?怎样
Segii Zhevzhyk在评论中提供了提示。谢谢
这应该是不可能的,因此也不可能。
OpenAPI规范(以前称为Swagger规范)不仅仅是关于RESTAPI的规范。这也是与他们互动的过程。接口永远不能公开与之交互的endpoint;但这只是一个实现。
Swagger是一套围绕OpenAPI规范构建的开源工具,可以帮助您设计、构建、记录和使用REST API。
正如OpenAPI规范简介中所述,
OpenAPI规范(OAS)定义了一个标准的、与语言无关的RESTful API接口,它允许人类和计算机在不访问源代码、留档或流量检查的情况下发现和理解服务的功能。如果定义正确,消费者可以理解远程服务并与之交互,只需最少的实现逻辑。
CabalPHP 支持接口文档自动生成。 编写好相关配置和文档注释后浏览器访问 http://127.0.0.1:9501/__docs 即可查看相关文档,注意检查自己的监听端口和IP。 点击这里访问示例文档 接口文档地址只能在debug环境(cabal.debug配置为true)下访问。 配置 文档相关配置在 conf/cabal.php // ... 'document' =
我有一个Spring启动的MVC java网络应用程序。我已经能够为API留档集成Springfox。当服务器启动并运行时,我可以直观地看到所有的API。 我如何生成离线的swagger API文档?注意:我不想使用AsciDoc或markdown文档,但我希望在html文件中使用相同的swagger API用户界面。我希望链接是相对于本地目录的,而不是相对于本地主机服务器链接的。谢谢
我寻找一些配置,我可以改变接口的名称,已生成,但没有找到解决方案。 对此有什么想法吗??
支持在项目中使用 Swagger 注解语法,运行命令,生成 Swagger 文件。 Swagger 是最流行的 API 开发工具,它遵循 OpenAPI Specification(OpenAPI 规范,也简称 OAS)。 Swagger 可以贯穿于整个 API 生态,如 API 的设计、编写 API 文档、测试和部署。 Swagger 是一种通用的,和编程语言无关的 API 描述规范。 imi-
更改历史 * 2018-02-13 邢足健 无过滤条件时,省略filters传参,修改下划线格式字段为驼峰 * 2018-03-06 邢足健 添加批量创建与批量删除接口 * 2018-03-19 管鹏波 基于filters增加或的查询 1.查询接口 * /tables 获取列表,接口名为表名的复数形式 @param pageNo 整数,如1
我在一个带注释的对象中有几个枚举,如: 其中枚举定义为: 使用Openapi3,我可以生成一个swagger文档。我的问题是,和,翻译方式不同,如: 我希望< code>Enum2与< code>Enum1一样被记录,因此具有实际的枚举值。有什么方法可以强制这样做,或者解释为什么会这样?两个枚举基本上与示例中的相同。