我可以在一個 post 請求中保存兩個物體,但我如何在ResponseEntity<T>回傳 rest-api 時傳入多個引數。我是新來的rest-api。
這是我的控制器代碼:
@RequestMapping(value="/coursebook", method=RequestMethod.POST)
public ResponseEntity<Course> saveCourseBook(@RequestBody Course course, @RequestBody Book book)
{
try {
Course saveCourse = this.pojoService.addCourseBook(course);
Book saveBook = this.pojoService.addBookAuthor(book);
return ResponseEntity.ok(saveCourse); // Here i want to add `saveBook` also for json response.
} catch (Exception e) {
return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).build();
}
}
uj5u.com熱心網友回復:
您嘗試發回的回應類可以有任意數量的欄位。你可以有一個像這樣的通用回應類。
Response
import lombok.AllArgsConstructor;
import lombok.Data;
@Data
@AllArgsConstructor
public class Response<T,K> {
private T courseResponse;
private K bookResponse;
}
完成后,您可以將控制器修改為
@RequestMapping(value="/coursebook", method= RequestMethod.POST)
public ResponseEntity<Response<Course, Book>> saveCourseBook(@RequestBody Course course, @RequestBody Book book)
{
try {
Course saveCourse = this.pojoService.addCourseBook(course);
Book saveBook = this.pojoService.addBookAuthor(book);
return ResponseEntity.ok(new Response<>(
saveCourse,
saveBook
));
} catch (Exception e) {
return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).build();
}
}
或者,您可以參加一個CourseResponseDTO班級來做同樣的事情。
import lombok.AllArgsConstructor;
import lombok.Data;
@Data
@AllArgsConstructor
public class CourseResponseDTO {
private Course course;
private Book book;
}
@RequestMapping(value="/coursebook", method= RequestMethod.POST)
public ResponseEntity<CourseResponseDTO> saveCourseBook(@RequestBody Course course, @RequestBody Book book)
{
try {
Course saveCourse = this.pojoService.addCourseBook(course);
Book saveBook = this.pojoService.addBookAuthor(book);
return ResponseEntity.ok(new CourseResponseDTO(
saveCourse,
saveBook
));
} catch (Exception e) {
return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).build();
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/370636.html
