Spring REST Controllers
REST API ด้วย @RestController, @GetMapping, @PostMapping, @PutMapping, @DeleteMapping, ResponseEntity
1ความแตกต่างหลักระหว่าง @RestController และ @Controller คืออะไร?
ความแตกต่างหลักระหว่าง @RestController และ @Controller คืออะไร?
คำตอบ
@RestController เป็นแอนโนเทชันแบบรวมที่ผสาน @Controller และ @ResponseBody เข้าด้วยกัน หมายความว่าทุกเมธอดใน @RestController จะส่งคืนข้อมูลที่ถูกซีเรียลไลซ์ (JSON/XML) โดยอัตโนมัติแทนที่จะแก้ไขเป็น view @RestController เหมาะอย่างยิ่งสำหรับการสร้าง REST API ในขณะที่ @Controller ใช้กับเว็บแอปพลิเคชันแบบดั้งเดิมที่มี view เป็น HTML
2บทบาทของแอนโนเทชัน @RequestBody ในเมธอด REST คืออะไร?
บทบาทของแอนโนเทชัน @RequestBody ในเมธอด REST คืออะไร?
คำตอบ
@RequestBody บอกให้ Spring ดีซีเรียลไลซ์เนื้อหา (body) ของคำขอ HTTP (โดยทั่วไปคือ JSON หรือ XML) ให้กลายเป็นออบเจ็กต์ Java โดย Spring ใช้ HttpMessageConverter (เช่น Jackson สำหรับ JSON) เพื่อทำการแปลงนี้โดยอัตโนมัติ ซึ่งจำเป็นอย่างยิ่งสำหรับการรับข้อมูลที่ซับซ้อนในคำขอ POST หรือ PUT
3ควรใช้แอนโนเทชันใดในการแมปคำขอ HTTP DELETE?
ควรใช้แอนโนเทชันใดในการแมปคำขอ HTTP DELETE?
คำตอบ
@DeleteMapping เป็นแอนโนเทชันเฉพาะทางที่เปิดตัวใน Spring 4.3 เพื่อแมปคำขอ HTTP DELETE อย่างกระชับ เป็นทางลัดของ @RequestMapping(method = RequestMethod.DELETE) โดย Spring มีแอนโนเทชันที่คล้ายกันสำหรับแต่ละเมธอด HTTP ได้แก่ @GetMapping, @PostMapping, @PutMapping, @PatchMapping
จะดึงตัวแปรเส้นทาง (path variable) จาก URL ใน Spring REST ได้อย่างไร?
ข้อดีของการใช้ ResponseEntity<T> แทนการส่งคืนออบเจ็กต์โดยตรงคืออะไร?
+17 คำถามสัมภาษณ์
หัวข้อสัมภาษณ์ Spring Boot อื่นๆ
Spring Core - IoC & DI
Spring Boot Auto-Configuration
Spring Boot Starters
Application Properties & YAML
การทำ Logging ด้วย SLF4J และ Logback
Spring Boot DevTools
Spring MVC Basics
Request & Response Handling
การจัดการข้อยกเว้น
Bean Validation
พื้นฐาน Spring Data JPA
เอนทิตี JPA และความสัมพันธ์
การสืบค้น JPA
Spring Data Repositories
พื้นฐาน Spring Security
Spring Boot Actuator
การทดสอบหน่วยด้วย JUnit และ Mockito
การทดสอบ Spring Boot
Profiles และ Environment
RestTemplate และ WebClient
Async และ Scheduling
Caching ด้วย Spring
Spring WebFlux (Reactive)
ทรานแซกชัน Spring
การยืนยันตัวตนและการให้สิทธิ์ขั้นสูง
JWT และความปลอดภัยแบบ Stateless
OAuth2 และ Authorization Server
Spring Boot และ Docker
Microservices ด้วย Spring
Spring Cloud Config
การเพิ่มประสิทธิภาพการทำงาน
GraalVM Native Images
เชี่ยวชาญ Spring Boot สำหรับการสัมภาษณ์ครั้งถัดไป
เข้าถึงคำถามทั้งหมด flashcards แบบทดสอบเทคนิค แบบฝึกหัด code review และตัวจำลองสัมภาษณ์
เริ่มใช้ฟรี