我有一个Spring应用程序,其中公开了两个rest接口供使用。一个是内部开发人员,另一个是客户。
Swagger确实生成了一个很好的文档,可以在/Swagger ui下访问。html
在此URL下显示内部和外部用户的文档。
以下是我的代码设置:
import org.springframework.boot.info.BuildProperties;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;
import springfox.documentation.builders.RequestHandlerSelectors;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2;
@Configuration
@EnableSwagger2
public class Swagger2UiConfiguration extends WebMvcConfigurerAdapter {
@Bean(name="restInternalSwaggerApi")
public Docket internalApi(BuildProperties build) {
final Docket docket = new Docket(DocumentationType.SWAGGER_2)
.groupName( "internal" )
.select()
.apis( RequestHandlerSelectors.basePackage("com.xyz.web.internal") )
.build();
return docket;
}
@Bean(name="restPublicSwaggerApi")
public Docket publicApi(BuildProperties build) {
final Docket docket = new Docket(DocumentationType.SWAGGER_2)
.groupName( "public" )
.select()
.apis( RequestHandlerSelectors.basePackage("com.xyz.web.public") )
.build();
return docket;
}
}
现在,我想把这些昂首阔步的文档分开。这样我们的内部开发人员就可以像
/留档/私有/swagger-ui.html和
/留档/公共/api-v1.html一样访问它
两人都没有见面。那要怎么做?
我在这里找到了一些提示,但它们对我来说确实没有建设性:
超文本传输协议://spingfox.github.io/springfox/docs/current/#q13和链接资源
使用springfox Swagger
swagger在path
https://github.com/springfox/springfox/issues/963
中的多个版本自定义目录的endpointhttps://github.com/springfox/springfox/issues/1263#issuecomment-210839308
如果有人愿意把我交给合适的留档,我也会很高兴。
如果这个问题很难理解,请告诉我如何改进。
有关java的maven的版本信息:
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>2.8.0</version>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>2.8.0</version>
换言之:
我希望下拉框访问的不同API由不同的URL调用:
我想要这样,这样我就可以给客户一个不同的URL,使用不同的API,而不是给我的开发人员同事另一个URL。
>
Swagger-ui是一个包含html和css的模块(swagger ui作为解决方案的许多罐之一),因此如果您需要一个更多的页面(在您的情况下api-v1.html),您需要添加一个更多html.
下面是swagger-ui的源代码,我在此基础上创建了一个修改过的springfox.js文件(2.10.5版本),该文件允许只显示一个具有group pName==页面前缀的目录(例如,如果您有您的目录. group pName(外部))它将显示在页面上external-swagger-ui.html
所以为了工作,你需要添加2个文件总文件放置请注意,html文件也被修改为使用自定义springfox.js
默认swagger-ui.html对此解决方案没有干扰。
工作示例
我们有一个。NET解决方案,有两个项目: null 当将Swagger UI添加到API项目(不是首选解决方案)时,它根本不起作用,可能是因为自定义控制器选择器 然而,我认为我遗漏了一些明显的东西,因为这感觉像是我们遗漏的一个非常基本的配置设置
我们在我们的泽西应用程序中使用了@Role允许注释来限制用户对应用编程接口某些部分的访问。我们如何在SwaggerUI中显示这些信息? 到目前为止,我已经用@ApiOperation注释了方法以显示in/out参数,并尝试使用@Authorization/@AuthorizationScope,但我只为我们不使用的oauth2显示了它。最接近out case的是ApiKeyAuthDefiniti
我有一个java项目(tomcat webapp)和一些REST Api。我想为他们生成大摇大摆的文档。我从本教程(github)开始。我没有maven我们使用蚂蚁任务。我加入了swagger-annotations-1.5.0。jar和所有随swagger jaxrs jar 1.5.0版本附带的jar(如果有用的话,我可以包括一个完整的列表),我已经注释了一些方法,我有一个如下的配置类: }
有没有人用spring-data-rest配置了swagger。我知道swagger有DocumentationConfig类,它扫描所有spring-mvc请求映射。但是,如何将其用于spring-data-rest,因为没有定义显式的请求映射。非常感谢在这方面的任何帮助。此外,我还想知道,是否有其他支持Spring-Data-REST的文档框架。
我是新手所以我可能错过了什么
我创建了一个新的Web Api项目,添加了ASP.NET标识并配置了OAuth,如下所示: 谢了。 另外,我应该说Swagger文档对我所有的控制器都适用,只是我忽略了一个明显的方法--如何登录。