@ApiParam不使用springfox swagger 2

时间:2017-09-21 15:03:38

标签: java spring swagger swagger-ui swagger-2.0

我使用Springfox swagger 2作为我的api文档,我有以下控制器:

  

HelloController.java

import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;

import com.wordnik.swagger.core.Api;
import com.wordnik.swagger.core.ApiParam;

import io.swagger.annotations.ApiOperation;
import springfox.documentation.annotations.ApiIgnore;


@RestController
@RequestMapping(value="/hello",method = RequestMethod.GET)
@Api(value="Hello wwwww", description="this controller will say hello")


public class HelloController {
    //@ApiIgnore
    @ApiOperation("Get all products of our database")
    @RequestMapping(value = "/id", method = RequestMethod.GET)

    private String hello(@ApiParam(name = "studentId", 
              value = "The Id of the Student to be viewed", 
              required = true) 
    @PathVariable ("student") Integer studentId) {
        String name = "hello world";
      return name;
    }

}

所以问题是参数说明没有在我的招摇ui中正确显示,任何想法为什么?

提前谢谢你。

2 个答案:

答案 0 :(得分:0)

这与description()注释的@Api方法已被弃用并且记录为:"未在1.5.X中使用,保留用于传统支持的事实有关。&# 34;

这已在github上讨论过swagger:swagger 2.0 why api description has been deprecated ?

另一种方法是使用@SwaggerDefinition

答案 1 :(得分:0)

如果您想要在Swagger的@Api中进行说明,则应使用tags,例如:

  

@Api(tags = {“external_info”,“user_info”})

请参阅grouping with tags

  

您可以使用根级别的全局标记部分为每个标记指定description和externalDocs。此处的标记名称应与操作中使用的名称相匹配。

在你的情况下

@Api(tags = {"hello_info"})

并指定标签:

tags:
  - name: hello_info
    description: this controller will say hello

@SwaggerDefinition(

   tags = {
            @Tag(name = "hello_info", description = "this controller will say hello")
    },