Tag: swagger

如何在swagger yml中定义HashMap <String,List >属性?

我正在使用swagger在Java和Type脚本中生成类。 我有问题定义map属性与对象列表作为值。 我试着定义如下: DataMap type: object additionalProperties: #type: array — This config does not work. $ref: ‘#/definitions/Data’ 在java中生成以下代码的yml定义: class DataMap extends HashMap { } 如何配置yml以生成包含数据列表的密钥? 类似下面的课: class DataMap extends HashMap<String, List> { } 要么 class DataInfo { Map<String, List> dataMap; } swagger 2.0有可能吗? 我正在考虑定义另一个扩展ArrayList的DataList类,然后将此类用作Map的值。 ————–更新和答案———– 谢谢@nickb 我使用swagger-codegen-maven-plugin版本2.2.1和yml定义来生成map,如下所示: DataInfo type: object properties: dataMap: type: object additionalProperties: […]

Swagger Gateway MicroService聚合

我正在使用SpringBoot开发一个微服务应用程序。 Gateway Microervice面向公众,它将请求重定向到特定的微服务(在不同的主机上运行)。 现在,我有多个微服务,每个微服务都使用Swagger公开了他们的API。 我们希望为公共客户聚合所有这些API Swagger文档。 我们已经合并的临时解决方案是,只为Gateway Service中的每个微服务复制了Swagger Annotated类。 这样做的正确方法是什么?

Swagger无法为HTTP“PATCH”生成文档

我遵循了以下内容 博客文章: http : //kingsfleet.blogspot.co.uk/2014/02/transparent-patch-support-in-jax-rs-20.html https://github.com/jersey/jersey/tree/2.6/examples/http-patch 创建端点以支持Jersey 2.6依赖版本中的HTTP“PATCH”方法: -Jersey: 2.6 -swagger-jersey2-jaxrs_2.10: 1.3.12 题? 为什么Patch终点没有被列为swagger ui文档的一部分? 分析: 如果我使用此注释进行注释,则会生成该端点的文档,但不会进行交互。 @com.wordnik.swagger.jaxrs.PATCH 配置 JerssyApplicationInitializer packages(true, “com.test.account.endpoint”, “com.wordnik.swagger.jaxrs.json”); //Swagger Configuration register(new ApiListingResourceJSON(), 10); register(JerseyApiDeclarationProvider.class); register(JerseyResourceListingProvider.class); //Genson Converter register(GensonJsonConverter.class, 1); register(createMoxyJsonResolver()); 我不确定,如果我遗失了什么,任何帮助或指南都会有所帮助。 补丁方法doscumets: public static final String PATCH_MEDIA_TYPE = “application/json-patch+json”; @PATCH //@com.wordnik.swagger.jaxrs.PATCH @PreAuthorize(userAuthenticationRequire=true) @Consumes(PATCH_MEDIA_TYPE) @Path(“{id: .\\d+}”) @ApiOperation(value = “Update Client Details […]

将多个注释合并为一个以避免重复它们

我正在使用Spring MVC来实现各种REST服务。 对于文档,我使用的是Swagger。 这很好用,文档看起来很好,非常实用。 我唯一的问题是文档的注释真的挤满了控制器类,尤其是错误代码注释。 例: @ApiErrors(value = { @ApiError(code = 123, reason = “Reason123”), @ApiError(code = 124, reason = “Reason124”), @ApiError(code = 125, reason = “Reason125”), @ApiError(code = 126, reason = “Reason126”), @ApiError(code = 127, reason = “Reason127”) }) public void exampleFunctionImplementation() { } 在许多情况下,这会导致大量注释,其中真正的应用程序代码隐藏在其间的某处。 此外,这个注释集经常被重复,因为许多方法可能返回相同的错误代码集。 有没有选择通过将注释列表定义为其他类文件中的常量来缩短这一点? 或许我可能忽略了一些更简单的事情? 我尝试在某处定义@ApiError项的数组,但这不会编译: ApiError[] array = {ApiError(code = […]

OffsetDateTime在GET方法中产生“没有找到类型为public javax.ws.rs.core.response的参数的注入源”

我有以下GET REST方法: import java.time.OffsetDateTime; import javax.ws.rs.Consumes; import javax.ws.rs.DELETE; import javax.ws.rs.GET; import javax.ws.rs.HeaderParam; import javax.ws.rs.POST; import javax.ws.rs.PUT; import javax.ws.rs.Path; import javax.ws.rs.PathParam; import javax.ws.rs.Produces; import javax.ws.rs.QueryParam; import javax.ws.rs.core.Response; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiResponse; import io.swagger.annotations.ApiResponses; import com.product.rest.api.TransactionsApi; import com.product.rest.model.Transaction; @Path(“/transactions”) @Api(description = “the transactions API”) @Consumes({ “application/json” }) @Produces({ “application/json” }) public class TransactionsApiImpl extends TransactionsApi […]

Spring Boot + Springbox招摇错误

我有一个春季启动项目希望通过springbox与swagger集成。 我的弹簧启动应用程序运行良好。 但是在我添加springbox之后,它无法通过unit testing。 以下是我在项目中添加的详细信息。 对于pom.xml ,添加了 io.swagger swagger-core 1.5.3 io.springfox springfox-swagger2 2.2.2 io.springfox springfox-swagger-ui 2.2.2 然后使用swagger配置类 @Configuration @EnableSwagger2 public class SwaggerConfig { @Bean public Docket booksApi() { return new Docket(DocumentationType.SWAGGER_2) .apiInfo(apiInfo()) .select() .apis(RequestHandlerSelectors.any()) .paths(PathSelectors.regex(“/.*”)) .build(); } private ApiInfo apiInfo() { return new ApiInfoBuilder() .title(“blah”) .description(“blah.”) .termsOfServiceUrl(“http://www.blah.com.au”) .contact(“blah”) .build(); } } 运行mvn clean package时我得到的错误是 org.springframework.beans.factory.UnsatisfiedDependencyException: […]

从现有REST API生成Swagger文档

鉴于现有的JAX-RS注释API接受并返回带有jackson-annotated类型的json,有没有办法可以生成一些YAML Swagger文档? 我的计划B是编写一些使用reflection来查找REST注释类型的代码,创建其参数和返回的哈希映射,然后为Jackson注释抓取这些类,并以这种方式生成文档。 我更愿意使用已经存在的解决方案来编写一次性的东西。 我发现这个Swagger模块声称它可以解析Jackson的配置( https://github.com/FasterXML/jackson-module-swagger ),但我不太了解Swagger了解哪些模块以及我是否可以使用它来从现有代码生成Swagger。

使用springfox和Swagger2时,为什么v2 / api-docs是默认URL?

我刚开始按照这个指南开始使用招摇,但我发现了一些非常奇怪的东西对我来说毫无意义。 据我所知,当您拥有API版本号为2的文档时,应使用v2 / api-docs。 所以,默认应该只是api-docs,但由于一些奇怪的原因,我发现默认是v2 / api-docs。 检查库文档我发现了这个 。 如何在不能使用v2的情况下覆盖该值? (当我的API将达到v2但我也想展示旧版文档)。 或许我使用v2的概念是错误的? 有人可以帮我弄这个吗?

生成REST API的Swagger UI文档

我在Java中使用JAX-RS / Jersey开发了我的REST API。 我想为它转换为/生成基于Swagger的UI文档。 任何人都可以告诉我精确/步骤简单的方法如何这样做? 对不起,但他们网站上给出的步骤对我来说有点模糊。

如何在Spring启动rest应用程序中使用Swagger ui使用密码流配置oAuth2

我有使用另一个Spring启动授权服务器的spring boot rest api(resources),我已经将Swagger配置添加到资源应用程序中,以便为其余的API获得一个漂亮而快速的文档/测试平台。 我的Swagger配置如下所示: @Configuration @EnableSwagger2 public class SwaggerConfig { @Autowired private TypeResolver typeResolver; @Value(“${app.client.id}”) private String clientId; @Value(“${app.client.secret}”) private String clientSecret; @Value(“${info.build.name}”) private String infoBuildName; public static final String securitySchemaOAuth2 = “oauth2”; public static final String authorizationScopeGlobal = “global”; public static final String authorizationScopeGlobalDesc = “accessEverything”; @Bean public Docket api() { List list […]