如何在Swagger中使用自己的注释?

时间:2015-07-30 08:32:38

标签: java swagger swagger-ui

如何使用我自己的注释构建swagger ui页面。 例如,我定义了注释并使用它:

public String getHomePage(@ModelAttribute("processingException", HttpServletRequest req)
{
//....
req.getAttribute("processingException");

之后可能我应该从 @PUT @MyOwnAnnotationForAdditionalPropInSwagger(value = "Some text") @Path( "/{carId}" ) @Consumes(MediaType.APPLICATION_JSON) @Produces(MediaType.APPLICATION_JSON) @ApiOperation( value = "Updates car info" ) public Response patchItem(@ApiParam(value = "Fields to update") Car item) { /*some code*/ } 扩展一些类并指定扫描我的注释(swagger-core)。

结果我希望看到swagger ui中的附加列和我的文本。

我怎么能意识到这一点?我需要扩展哪个课程?

2 个答案:

答案 0 :(得分:0)

swagger 2.0支持自定义字段,2013年有一个Pull Request(https://github.com/swagger-api/swagger-node/pull/47)。

虽然显然很容易添加自定义字段,但由于它们不在Swagger 2.0规范中,因此Swagger-UI默认情况下不会显示它们。

为了实现这一点,你将不得不改变一些事情。

  1. 在解析器实现中实现所需的注释( ie。 swagger-coreswagger-php)(如果它不存在)。
  2. 克隆并修改swagger-ui以根据需要显示自定义字段。
  3. 请注意,通过执行此操作,您实际上会违反swagger json架构(https://github.com/swagger-api/swagger-spec/blob/master/schemas/v2.0/schema.json),并且您可能使用的任何第三方验证器都将失败。

答案 1 :(得分:0)

我相信您可以通过扩展swagger documentation中所述的swagger核心阅读器来实现。这是我的projects之一的示例。