Tôi đang cố gắng để có một @RestController
mất @PathVariable
trả về một đối tượng cụ thể ở định dạng JSON, cùng với mã trạng thái thích hợp. Cho đến nay, mã này sẽ trả về đối tượng ở định dạng JSON vì nó đang sử dụng Spring 4 được xây dựng trong thư viện Jackson theo mặc định.Cách phản hồi với mã trạng thái HTTP trong lớp Spring MVC @RestController @ResponseBody trả về một đối tượng?
Tuy nhiên tôi không biết cách tạo nó để người dùng nói rằng chúng tôi muốn biến api, sau đó là dữ liệu JSON, sau đó mã lỗi (Hoặc mã thành công tùy thuộc vào mọi thứ đều ổn). đầu ra ví dụ sẽ là:
Vui lòng nhập giá trị api như tham số (LƯU Ý này có thể ở JSON cũng như nếu cần thiết)
{ "id": 2, "api": "3000105000" ... } (LƯU Ý này sẽ là đối tượng phản ứng JSON)
Status mã 400 (OR mã trạng thái thích hợp)
url với tham số trông giống như
này 012.http://localhost:8080/gotech/api/v1/api/3000105000
Code tôi có cho đến nay:
@RestController
@RequestMapping(value = "/api/v1")
public class ClientFetchWellDataController {
@Autowired
private OngardWellService ongardWellService;
@RequestMapping(value = "/wells/{apiValue}", method = RequestMethod.GET)
@ResponseBody
public OngardWell fetchWellData(@PathVariable String apiValue){
try{
OngardWell ongardWell = new OngardWell();
ongardWell = ongardWellService.fetchOneByApi(apiValue);
return ongardWell;
}catch(Exception ex){
String errorMessage;
errorMessage = ex + " <== error";
return null;
}
}
}
mmmmm kinda có ý nghĩa, vậy mã hiện tại của tôi sẽ đi đâu? Hoặc là mã bạn đăng điều riêng của mình mà tôi sẽ gọi để xử lý các ngoại lệ của tôi? Xin lỗi tôi đã không bao giờ nhìn thấy mã như thế trước đây, trông rất hữu ích mặc dù cảm ơn vì sự giúp đỡ – Cris
Nó đi trong cùng một bộ điều khiển như mã của bạn. Chỉ cần dùng thử phương pháp xử lý. – Affe
Điều này là rất hữu ích và tốt hơn cách viết RestAPIs tôi nghĩ. Nếu tôi có nhiều bộ điều khiển, tôi có phải viết các trình xử lý này cho tất cả các bộ điều khiển hay tôi có thể đặt chúng trong lớp cơ sở hoặc trong giao diện và sử dụng nó không? – shraddha