我正在寻找一种方法来告诉斯威格,某个API响应代码没有响应体。例如,一个get响应,可以返回一个200代码,将实际对象作为响应,或者如果与传递的ID关联的对象不存在,则返回一个404:
@ApiResponses(value = {
@ApiResponse(responseCode = "200", description = "Object found"),
@ApiResponse(responseCode = "404", description = "Invalid object ID", content = @Content)
})
这是我能想到的最接近的事情,但它并不完美,在404响应的描述下,我仍然得到了一个恼人的“媒体类型”。谢谢
您可以在v2中的方法之上使用以下内容
@ApiResponses(value = {
@ApiResponse(code = 200, message = "Success", response = YourObject.class),
@ApiResponse(code = 401, message = "Unauthorized"),
@ApiResponse(code = 403, message="Forbidden"),
@ApiResponse(code = 404, message = "Not Found"),
@ApiResponse(code = 500, message = "Failure")
})
对于V3,您可以尝试类似的方法,以防您的方法返回某些对象
@Operation(summary = "Add a new object", description = "", tags = { "yourObject" })
@ApiResponses(value = {
@ApiResponse(responseCode = "201", description = "Object created",content = @Content(schema = @Schema(implementation = YourObject.class))),
@ApiResponse(responseCode = "400", description = "Invalid input"),
@ApiResponse(responseCode = "409", description = "Object already exists") })
@PostMapping(value = "/your-url", consumes = {"application/json","application/xml" })
public ResponseEntity<YourObject> addObject(
...
return ...
}
如果您的方法返回无效,请尝试此方法
@Operation(summary = "Update an existing object", description = "", tags = { "yourObject" })
@ApiResponses(value = {
@ApiResponse(responseCode = "200", description = "successful operation"),
@ApiResponse(responseCode = "400", description = "Invalid ID supplied"),
@ApiResponse(responseCode = "404", description = "Object not found"),
@ApiResponse(responseCode = "405", description = "Validation exception") })
@PutMapping(value = "/your-url/{id}", consumes = { "application/json", "application/xml" })
public ResponseEntity<Void> addObject(
...
return ...
}
如果未指定@apisresponse
注释的内容
属性,则控制器方法的返回类型将是您的响应内容。要防止出现这种情况,请明确定义内容
:
@ApiResponse(responseCode = "200", description = "OK",
content = @Content(schema = @Schema(implementation = Void.class)))
或者只需返回ResponseEntity即可
这可能是更好(也更短)的方法:
@ApiResponse(
responseCode = "404",
description = "Not found",
content = @Content(schema = @Schema(hidden = true)))
我使用的是Rest模板,也使用了Web客户端。我得到钥匙作为回应,但身体总是空的。使用Postman,我可以看到响应,这是一个JSON。 我的代码片段在下面- 回应如下- {“结果”:[]} 有人面临同样的问题吗? 在《邮差》中,我能看到的回复头是- 键值 内容编码gzip 内容类型的应用程序/JSON;charset=utf-8 传输编码分块
使用Guzzle,我正在使用JSON格式的一些外部API,通常我获取数据 $data = $request- 但是我无法从这个不同的api中获取数据。数据似乎没有出现在“响应体”中。 这个api调用有效:https://i.ibb.co/80Yk6dx/Screenshot-2.png 这不起作用:https://i.ibb.co/C239ghy/Screenshot-3.png
我使用Spring Rest模板时,我的应用程序中的rest Web服务。在测试中,代码工作得很好,但是在正式生产环境中,我的cpde不工作,因为身体回来是空的 我尝试了以下方法 我在测试中得到的响应如下 在生产过程中,resp是 返回的响应主体为空。我知道nginx版本不同,但这超出了我的控制范围 我们非常感谢你的任何帮助 干杯Damien
最近我开始使用reverfit2,我遇到了一个解析空响应体的问题。我有一个服务器,它只响应http代码,没有任何内容在响应体。 我如何只处理关于服务器响应的元信息(报头、状态代码等)?
我正在尝试调用FlickR API,但由于response.body()返回null而遇到困难。 我不确定它是否与我的JSON/POJO映射相关,但我无法弄清楚当我调用Flickr时如何访问来自改版的响应。我知道我的调用已经成功完成,因为我实际上能够通过日志拦截器查看JSON。 型号: 活动 }
但是我总是在方法中获得响应。因此,我尝试使用查看响应的错误主体。错误正文包含与原始响应完全相同的内容。 我用控制了response,看看我是否修改了我的响应类wright,它似乎可以。 为什么改型无法转换我的响应? 更新