首页 > 解决方案 > 必需,缺少请求正文:当我尝试加载 Swagger 时公开

问题描述

我正在尝试使用post请求从我的 Spring-Boot 应用程序访问 swagger URL。但是得到一个400-Bad request,它说请求正文丢失。但同样的请求在 Postman 中运行良好。控制器:

@RestController
public class IdVController {

    @Autowired
    private IdService idService;

    @Autowired
    protected FileUtility util;

    /** The Constant STATUS. */
    private static final String STATUS = "status";

    /** The Constant SUCCESS. */
    private static final String SUCCESS = "success";

    /** The Constant SYSTEM. */
    private static final String SYSTEM = "SYSTEM";

    @RequestMapping(value ="/idApi")
    public ResponseEntity<MarketPlaceResponse> 
    validateIdData(@RequestBody  VerifyIdDTO verifyIdDTO) throws Exception {
        JSONObject rawResponse = idService.validateId(verifyIdDTO);

        IdVerifyEntity DTOResponse = (IdVerifyEntity)util.convertToEntity(rawResponse.toString(), IdVerifyEntity.class);
        if (rawResponse.get(STATUS).equals(SUCCESS)) {
            DTOResponse.setCreated_by(SYSTEM);
            DTOResponse.setCreated_date(new 
            java.sql.Date(System.currentTimeMillis()).toString());
        }
        
        //return ResponseBuilder.buildResponse(DTOResponse);
        MarketPlaceResponse response = new MarketPlaceResponse();
        response.setResponse(DTOResponse);

        return new ResponseEntity<MarketPlaceResponse>(response,HttpStatus.OK);
    }
}

请求 DTO:

public class VerifyIdDTO {

    @NotBlank(message="Owner ID should not be empty")
    private String id;
    private String citizenship;

    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }

    public String getCitizenship() {
        return citizenship;
    }

    public void setCitizenship(String citizenship) {
        this.citizenship = citizenship;
    }
}

我正在通过构建 URL 并使用来自此 POST 方法的 GET 来联系外部服务,这是 swagger URL localhost:8080/idvalidationservice/swagger-ui.html

您可以在此屏幕截图中看到错误消息。

标签: javaspring-bootswaggerswagger-uihttp-status-code-400

解决方案


推荐阅读