![](/img/trans.png)
[英]What is the best way to return different types of ResponseEntity in Spring MVC or Spring-Boot
[英]What is the best way to return primitive types/wrappers in Spring Controller?
當我像這樣從 Spring Controller 返回 Integer 或其他包裝器時:
@GetMapping(path = "test1")
public Integer test1() {
return 1;
}
對用戶的響應具有以下正文:
1
它不是有效的 JSON。 是否有關於如何返回這些值的做法? 問題是我希望我的所有 API 都返回一個有效的 JSON。 我創建了一個返回的包裝器:
{
"value": 1
}
但是,也許有更好的方法來處理這些情況?
如果返回值返回為純文本,例如String
返回沒有雙引號,則以下將是真實的:
您使用@RestController
或@ResponseBody
您的代碼未指定響應內容類型
客戶端更喜歡文本響應而不是 JSON 響應
要強制響應 JSON,您需要通過指定來告訴 Spring:
@GetMapping(path = "test1", produces = "application/json")
或者
@GetMapping(path = "test1", produces = MediaType.APPLICATION_JSON_VALUE)
由於您的響應只是一個數字,您可以通過指定例如text/plain
作為響應內容類型來決定它就是那個數字,而不是 JSON。 與任何其他響應一樣,正確解釋響應值取決於客戶端。
但是,普通的 1 字節響應1
是有效的 JSON,因此您可以保留它,或者您可以根據需要執行{ "value": 1 }
JSON 響應。 這是您的 API,因此您可以決定響應格式是什么。
只需記住記錄它,這樣編寫客戶端代碼的人就會知道會發生什么。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.