[英]Is it good practice to directly call REST endpoint (method) from another REST endpoint of same controller?
我有一個Spring REST控制器類,它有多個端點。 從另一個端點直接調用端點方法是一種好習慣嗎?
我用谷歌搜索了它,但沒有找到任何答案來處理這個問題的好方法。
@RestController
public class DataContoller {
@GetMapping("/dataA/{param}")
public ResponseEntity getDataA(@PathVariable String param) {
// logic to fetch data A
return ResponseEntity.ok("A");
}
@GetMapping("/dataB/{param}")
public ResponseEntity getDataB(@PathVariable String param) {
ResponseEntity response = getDataA("test");
String result = response.getBody();
return ResponseEntity.ok("B" + result);
}
}
原則上它起作用,因為它只是來自另一種方法的方法調用,但我想知道這是否是一個好的做法。 如果不是很好的做法,那么理想的做法是什么。 一種選擇是使用RestTemplate。 這是唯一的選擇嗎?
它並不壞,但它也不好。
問題是直接調用getDataA("test")
跳過通常在此控制器方法之前的所有內容:安全檢查,驗證,過濾,日志記錄,映射或任何其他類型的數據操作。
它引入了不穩定性:您不確定數據是什么,以及它來自何處。 它來自我的內部方法,還是HTTP調用?
一個非常簡單的建議是使用服務方法getDataA
並從兩個控制器的方法中調用它。 但是,正如您已經注意到的,它並未完全替換HTTP請求。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.