Spring Boot EP 6:透過宣告類別(Class)來回傳JSON內容
宣告用於回傳(Response)的類別(Class)
通常在設計系統時,會為了Restful API的Request / Response設計固定的格式,本篇先專注於Response。
步驟1:設計Response的內容,其HTTP Body如下:
{
"rspCode" : "...",
"rspMsg" : "...",
"rspData" : "..."
}
步驟2:在java/stockmarket/jovepater/com/stockmarket下建立一個名為Classes資料夾,並新增一個RspBody.java檔案。
步驟3:宣告名為RspBody的類別(Class)
package stockmarket.jovepater.com.stockmarket.Classes;
public class RspBody {
// 回傳狀態代碼(自定義)
private String RspCode;
// 回傳狀態訊息(自定義)
private String RspMsg;
// 回傳資料,型別為Object,讓回傳的資料型別可以更多樣化
private Object RspData;
public RspBody(String RspCode, String RspMsg, Object RspData) {
this.RspCode = RspCode;
this.RspMsg = RspMsg;
this.RspData = RspData;
}
public String getRspCode() {
return RspCode;
}
public void setRspCode(String RspCode) {
this.RspCode = RspCode;
}
public String getRspMsg() {
return RspMsg;
}
public void setRspMsg(String RspMsg) {
this.RspMsg = RspMsg;
}
public Object getRspData() {
return RspData;
}
public void setRspData(String RspData) {
this.RspData = RspData;
}
}
PS:之後的程式碼,類別(Class)中的getRspCode、setRspCode等,都會以”getters and setters …”代替,如下面所示,撰寫程式的時候千萬不要看到範例沒有寫就忘記囉!
package stockmarket.jovepater.com.stockmarket.Classes;
public class RspBody {
// 回傳狀態代碼(自定義)
private String RspCode;
// 回傳狀態訊息(自定義)
private String RspMsg;
// 回傳資料,型別為Object,讓回傳的資料型別可以更多樣化
private Object RspData;
public RspBody(String RspCode, String RspMsg, Object RspData) {
this.RspCode = RspCode;
this.RspMsg = RspMsg;
this.RspData = RspData;
}
// getters and setters ...
}
調整Controller回傳JSON的撰寫方式
JSON說明:https://www.json.org/
步驟1:直接在回傳時引入RspBody這個類別,並將對應的參數填入。
package stockmarket.jovepater.com.stockmarket.Controllers;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
import stockmarket.jovepater.com.stockmarket.Classes.RspBody;
@RestController
public class HelloController {
@GetMapping("hello")
public RspBody Hello() {
return new RspBody("0000", "Success", "Hello World");
}
}
步驟2:在application.properties設定檔中加入Url Bath Path。
server.servlet.context-path=/api
步驟3:啟動這個服務後,透過瀏覽器呼叫這個API,網址應該是http://127.0.0.1:8080/api/hello,會看到程式回傳我們所設計的格式與內容。
可以看到程式回傳的內容已經是JSON格式,在rspData這個欄位,因為是宣告成Object,所以基本上所有的型別都能承載,使用起來非常方便。
~ END ~