[ Spring ] Spring ? JPA ? Controller 부터 알아보자!

일단.. 전 공식적으로 제대로 배운거라고는 인프런 사이트에 한 강사님 강의 기초적인것을 봤습니다. 그래서 따로 플러터도 하는 겸

거기에 맞춰서 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로 들어가봅시다.