当前位置: 首页 > 知识库问答 >
问题:

useDefaultResponseMessages(false)不工作

班浩皛
2023-03-14

我正在使用swagger codegen创建一个spring服务器。

我还使用了. useDefaultRecseMessages(false)-属性,如Swagger-Springfox中所述,默认情况下总是生成一些响应消息(401,403...)。我怎样才能移除它们?

SwaggerConfig.java:

public Docket customImplementation() {
return new Docket(DocumentationType.SWAGGER_2)
    .useDefaultResponseMessages(false)
    .select()
    .apis(RequestHandlerSelectors.basePackage("myrest.api"))
    .build()
    .directModelSubstitute(org.joda.time.LocalDate.class, java.sql.Date.class)
    .directModelSubstitute(org.joda.time.DateTime.class, java.util.Date.class)
    .apiInfo(apiInfo());}

相关部分:Api。爪哇:

    @ApiOperation(value = "", notes = "Returns all clouds from the system that the user has access to ", response = Cloud.class, responseContainer = "List", tags = {
      "cloud",})
  @ApiResponses(value = {
      @ApiResponse(code = 200, message = "All clouds ", response = Cloud.class),
        /*@ApiResponse(code = 401, message = "Authorization for this action is missing", response = Error.class),
        @ApiResponse(code = 403, message = "Forbidden action", response = Error.class),
        @ApiResponse(code = 500, message = "An unexpected Error occured", response = Error.class),*/
      @ApiResponse(code = 504, message = "Server temporary not available", response = Error.class)})

  @RequestMapping(value = "/clouds",
      produces = {"application/json"},
      method = RequestMethod.GET)
  ResponseEntity<List<Cloud>> findClouds();

但是招摇过市的ui看起来仍然像:招摇过市的ui:ResponseMessageable

看来是。useDefaultResponseMessages(false)不起作用。

如何禁用这些默认错误响应?

@约翰·德斯金

我更改了Docketinialization,将@Controller更改为@Restcontroller,但我仍然通过get获取404消息

不同外观的404消息

从Swagger-Codigen生成的Serverstubs如下所示:

pi.java:

@Api(value = "clouds", description = "the clouds API")
public interface CloudsApi {

@ApiOperation(value = "", notes = "Returns all clouds from the system that the user has access to ", response = Cloud.class, responseContainer = "List", tags={ "cloud", })
@ApiResponses(value = {
        @ApiResponse(code = 200, message = "All clouds ", response = Cloud.class),
        @ApiResponse(code = 401, message = "Authorization for this action is missing", response = Cloud.class),
        @ApiResponse(code = 403, message = "Forbidden action", response = Cloud.class),
        @ApiResponse(code = 500, message = "An unexpected Error occured", response = Cloud.class),
        @ApiResponse(code = 504, message = "Server temporary not available", response = Cloud.class) })

@RequestMapping(value = "/clouds",
        produces = { "application/json" },
        method = RequestMethod.GET)
ResponseEntity<List<Cloud>> findClouds();

以及分离控制器:

@RestController
public class CloudsApiController implements CloudsApi {

@Autowired
private UserService userService;
@Autowired
private CloudService cloudService;

public ResponseEntity<List<Cloud>> findClouds() {
//do some magic
    return new ResponseEntity<List<Cloud>>(cloudList, HttpStatus.OK);
}
[...]
}

共有2个答案

宋航
2023-03-14

修复了工作旁边的问题...

这是一个Spring的注释问题。在我的SwaggerDocumentationConfig.java我添加了@EnableSwagger2,一切都可以按照需要工作

@Configuration
@EnableSwagger2
public class SwaggerDocumentationConfig {

@Bean
public Docket customImplementation(){
    return new Docket(DocumentationType.SWAGGER_2)
            .useDefaultResponseMessages(false)
            .select()
                .apis(RequestHandlerSelectors.basePackage("myrest.api"))
                .build()
            .directModelSubstitute(org.joda.time.LocalDate.class, java.sql.Date.class)
            .directModelSubstitute(org.joda.time.DateTime.class, java.util.Date.class)
            .apiInfo(apiInfo());
    }
}    
洪景铄
2023-03-14

尝试将对useDefaultResponseMessages的调用放在摘要中的生成方法之后。我已经更新了你的代码来说明我的意思。

希望这有所帮助。

public Docket customImplementation() {
    return new Docket(DocumentationType.SWAGGER_2)
      .select()
      .apis(RequestHandlerSelectors.basePackage("myrest.api"))
      .build()
      .useDefaultResponseMessages(false)
      .directModelSubstitute(org.joda.time.LocalDate.class, java.sql.Date.class)
      .directModelSubstitute(org.joda.time.DateTime.class, java.util.Date.class)
      .apiInfo(apiInfo());
}

为了让电话在我的机器上工作,我已经把ApiReponses和控制器放在一起了

@RestController
@RequestMapping("/my_model")
@ApiResponses(value = { @ApiResponse(code = 200, message = "OK"),
    @ApiResponse(code = 500, message = "Rocks fell, everyone died.") })

最新消息

你在描述方法吗?

以下是我在我的项目中所做的工作。注意:API响应附在控制器上。

@RestController
@RequestMapping("/my_model/gogo")
@ApiResponses(value = { @ApiResponse(code = 200, message = "OK"),
@ApiResponse(code = 500, message = "Rocks Fall") })
public class GoGoClass {

@RequestMapping(method = RequestMethod.POST)
@ApiOperation(value = "Description")
public void run(
        @ApiParam(value = "Param1 description") @RequestParam(required = true) final String param1,
        @ApiParam(value = "Param 2 description")  final String param2)
        throws ModelException {
        // Do stuff
        }
}
 类似资料:
  • 我有一个Spring实体,其中有一个用javax.validation.constraints中的@NotNull注释的字段 问题是,如果为name字段设置了空值,则将其存储在数据库中。但是,如果我按以下方式更改类,它会引发我想要接收的异常: ApplicationContext-JPA 由于我使用的是存储库,因此我还报告了corrisponding实体存储库:

  • 我有一个扩展JPopupMenu的类MyPopupMenu。在这个弹出菜单中,我添加了一个带有ActionListener的JMenuItem,它调用一个需要几分钟才能返回的进程。我想在按下这个项目后立即关闭弹出菜单。我在MyPopupMenu类中的方法是这样的: 这不管用。在我按下“一”项后,进程开始,但弹出菜单保持打开状态,直到进程返回(几分钟)。是否可以使弹出菜单消失,但进程继续运行?

  • 我正在开发一个spring应用程序。本项目的配置如下: spring开发工具依赖项是maven依赖项之一 thymeleaf依赖项是通过spring boot starter(即 我用 文件夹被标记为my IntelliJ IDEA项目中的资源 我正在使用IntelliJ IDEA项目运行该应用程序。当我运行应用程序时,我可以在控制台输出中看到: 尽管我的所有配置似乎都是正确的,但运行中的应用程序

  • 问题内容: 作为回答另一个问题的一部分,我编写了以下代码,乍看之下其行为似乎很奇怪: 谁能解释这个奇怪的行为?我认为这与Python的对象模型有关,但我不确定。 Cygwin下的版本2.5.2。 问题答案: Python具有这两个(以及其他)内置对象。它们只是对象。刚开始时,它们还没有任何名称,但是要知道我们指的是什么,我们将它们称为和。 在开始执行Python(2.x)脚本之前,该名称已绑定到该

  • 我对单向映射有问题,需要帮助。 我有2个实体具有相同的单向映射。 第一个: 第二条: 如果我试图保存一个实体,Hibernate抛出一个异常,因为第二个实体定义(非空)。 组织。冬眠PropertyValueException:not null属性引用null或瞬态值 如果我将JoinColumn更改为nullable=true,则单向映射不起作用,列表不会保存在DB中。我能做些什么使它工作?

  • 问题内容: 我不知道PHP如何在内部处理 正确/错误 比较。我知道true定义为1,false定义为0。执行此操作时,它会回显“ true ”。PHP如何将“ a”识别为1? 问题答案: PHP文档中包含有关布尔值和类型比较表的内容。 转换为布尔值时,以下值为FALSE: 布尔值本身 整数(零) 浮点数(零) 空字符串和 字符串 零元素数组 成员变量为零的对象(仅PHP 4) 特殊类型(包括未设置