这是我的swagger应用程序的界面:
@SwaggerDefinition(
...
)
@Api(
produces = "application/json",
protocols = "http",
tags = {"Service"}
)
@Path("/v1/{userId}/Services")
public interface ServiceApiV1 {
@GET
@Produces(MediaType.APPLICATION_JSON)
@AsyncTimed
@ApiOperation(
value = "Retrieves a service instance",
tags = "Service"
)
@Path("/{serviceId}")
void fetchService(@Suspended AsyncResponse asyncResponse,
@ApiParam @PathParam("userId") UserId userId,
@ApiParam @PathParam("serviceId") ServiceId serviceId
);
@GET
@Produces(MediaType.APPLICATION_JSON)
@AsyncTimed
@ApiOperation(
value = "Retrieves a list of services",
tags = "Service"
)
@Path("/")
void fetchServices(@Suspended AsyncResponse asyncResponse,
@ApiParam @PathParam("userId") UserId userId
);
}
我尝试使用@ApiParam(type = "UserId")
但它仍然使用字符串(我也尝试使用UserId
的完整路径,例如com.myservice.UserId
)
如您所见,我有UserId
的特定类型和ServiceId
的特定类型。但是,当我运行生成的swagger-codegen
API时,请将这些参数转换为string
是否可以让Swagger生成API客户端,但保留PathParams的类型,因为我已经在这里定义了它们?
(是的,swagger.json
具有类型string
的这些参数,这对于为什么codegen然后将它们生成为字符串是有道理的。所以我想正确的问题是如何让Swagger生成参数是更高级的类型,因为它们是
更新因此,使用完整路径会为我的type
生成正确的swagger.json
。但是,生成的API仍然使用String
:(