일단.. 전 공식적으로 제대로 배운거라고는 인프런 사이트에 한 강사님 강의 기초적인것을 봤습니다. 그래서 따로 플러터도 하는 겸
거기에 맞춰서 REST API 받아 줄 백엔드 서버가 필요해서 Spring Boot를 선택하게 되었습니다.
일단 간단히 예제를 받았습니다.
"User"
간단하게 User를 가지고 한번 시도해보자, 그래서 Controller & Service & Repository & Entity 까지 만들어보면서 느낀걸 말해볼려고 합니다.
일단 사용자가 Action을 취하면, 예를 들면 버튼을 눌렀을 때, 회원가입을 하고 싶다.
1. 서버는 /api/user/signup 이란걸 받고 컨트롤러가 저놈이 어딨나 살펴봅니다.
2. UserController는 그때, 여기 있습니다! 라고 하며 본인을 나타내겠죠
[브라우저 / 클라이언트]
↓ (HTTP 요청)
[Controller]
↓
[Service]
↓
[Repository]
↓
[Database]
@RestController
@RequestMapping("/api/users")
public class UserController {
private final UserService service;
@Autowired
public UserController(UserService service) {
this.service = service;
}
@GetMapping
public List<User> getAll() {
return service.getAll();
}
@PostMapping("/{id}")
public User getById(@PathVariable Long id) {
return service.getById(id);
}
@PostMapping
public User create(@RequestBody User user) {
return service.create(user);
}
@DeleteMapping("/{id}")
public String deleteById(@PathVariable Long id) {
service.deleteById(id);
return "success";
}
}
그럼 위에 RestController 즉 REST API 를 쓸거다.
그리고 RequestMapping "/api/users/" 니깐 https://localhost:8080/api/users 안에 들어오는 놈이 여기서 처리 하겠다. 라고 하는거죠
그 다음 GetMapping으로 /api/users/ 만 하면 List<Uesr> getAll() 함수를 호출하여, service를 또 호출합니다.
핵심을 짚고 가자면 Controller는 요청과 응답만 받는 놈 (HTTP) 입니다.
자 이제 Service로 들어가봅시다.