我试图用< code > swagger-maven-plugin 来记录我的api。
当我用< code>@Parameter注释路由参数时,只要没有用< code>@BeanParam注释,就会在openapi生成的文件中很好地记录下来。
如招摇岩心文件所述,
@Parameter可以代替或与JAX-RS参数注释(@PathParam、@QueryParam、@HeaderParam、@@FormParam和@BeanParam)一起使用。当swagger-core/swagger-jaxrs2默认扫描这些注释时,@Parameter允许定义参数的更多细节。
如何将我的@BeanParam
参数记录在我的 openapi 文件中?
这是我的pom.xml
:
<dependencies>
<dependency>
<groupId>io.swagger.core.v3</groupId>
<artifactId>swagger-jaxrs2</artifactId>
<version>2.1.1</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>io.swagger.core.v3</groupId>
<artifactId>swagger-maven-plugin</artifactId>
<version>2.1.1</version>
<configuration>
<outputFileName>openapi</outputFileName>
<outputPath>target/doc</outputPath>
<outputFormat>YAML</outputFormat>
<resourcePackages>...</resourcePackages>
<readAllResources>false</readAllResources>
</configuration>
<executions>
<execution>
<phase>generate-resources</phase>
<goals>
<goal>resolve</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
这是我的注释api:
@GET
@Path("/authorize")
@Operation(summary = "Summary", description = "Description")
Response authorize(
// Parameter doesn't show up in generated documentation
@Parameter(
description = "Request",
name = "request",
required = true
)
@BeanParam Oauth2AuthorizationRequest request,
// Parameter shows up correctly in generated documentation
@Parameter(
description = "Session id",
name = "sessionId",
required = true
)
@CookieParam("sessionId") String sessionId
);
生成的文件是:
openapi: 3.0.1
paths:
/auth/oauth2/authorize:
get:
summary: Summary
description: Description
operationId: authorize
parameters:
- name: sessionId
in: cookie
description: Session id
required: true
schema:
type: string
经过一些测试,我成功地在openapi文件中记录了我的<code>@BeanParam</code>。注释必须放在类中注释@BeanParam
,如下所示:
public class Oauth2AuthorizationRequest {
// Use the @Parameter annotation to document the attribute.
@HeaderParam("Authorization")
@Parameter(description = "Authorization header")
String authorization;
// If the attribute is a @FormParam, use the @Schema annotation.
@FormParam("client_id")
@Schema(description = "The id of the client")
String client_id;
// If the attribute is a @FormParam and is required,
// use the @Schema annotation for the description
// and the @Parameter one to set it as required.
@FormParam("grant_type")
@Schema(description = "Should be either \"credentials\" or \"password\"")
@Parameter(required = true)
String grant_type;
}
endpoint简化如下:
@GET
@Path("/authorize")
@Operation(summary = "Summary", description = "Description")
Response authorize(
// No more annotation on the @BeanParam
@BeanParam Oauth2AuthorizationRequest request,
@Parameter(
description = "Session id",
name = "sessionId",
required = true
)
@CookieParam("sessionId") String sessionId
);
我使用的是JAX-RS注解,但我遇到了@BeanParam的问题。我用的是Wildfly-Swarm和maven。以下几行是我错误的一部分:
当我访问我的Swagger UIendpoint时,我会看到这个服务的记录良好的条目,包括关于和参数的信息。现在,我试图以类似的方式创建和方法,但遇到了一个问题。 由于我的/请求包含许多表单参数,所以我将它们封装到一个对象中,并用注释该方法。我的表单对象如下所示: 我的方法如下所示: 什么也没做。我尝试将方法签名更改为如下所示: 还是什么都没有。我的问题是,是否有一种方法可以让OpenAPI/Sw
我想创建自己的自定义注释,我使用的是Spring框架。 当有人注释他的POJO类时,后面的代码将触发方法。 例如@Sensetive(values=“accountNumber”)在下面的类上注释时 将调用一个方法,在记录值时,这些值将被屏蔽(例如accountNumber=“12345”- 我知道@ToString注释可以在调用toString方法时完全排除值,但是否有可能屏蔽它?
我有问题时,试图显示数据到UI。 当我在MySQL中使用这个查询从我的表中获取Datetime日期时。它确实会返回我想要的记录 但是当我使用Spring向表单输入相同的数据并提交时,没有任何东西返回。我使用的输入是相同的。 我也尝试输入显示在屏幕中的值,这是2018-02-05 08:00:00.0但没有Lucks。 有人能给我一点主意吗?请救命!
我有一个具有@Slf4j注释的类。 我试着写一个测试和模拟记录仪,但它不起作用。 测试是这样的: 这是我得到的错误: 问题是,如何嘲笑伐木工?
我想让Univocity使用带注释的bean实例来确定CSV内容的一部分,即仅前几列。其余的列由一些复杂的编程逻辑提供,这些逻辑独立于bean实例或类型。 我知道Univocity可以将带注释的bean转换为记录,但我找不到如何处理带注释的bean以获得部分记录,而我可以在不使用带注释的bean的情况下以编程方式确定记录的其余部分。 bean将使用@Headers和@Parsed注释进行注释。(带