1편에 이어 오늘 해볼건
1. 엔트리 포인트 클래스 작성
2. MemberController(+핸들러 메서드)
3. CoffeeController(+핸들러 메서드)
4. MemberDto 작성
5. coffeeDto 작성
ㅇ 엔트리 포인트 클래스 작성
가장 먼저 엔트리 포인트 클래스가 뭘까? 애플리케이션을 실행시킬 수 있는 main()문이 포함된 클래스다.
@SpringBootApplication
public class CoffeeApplication {
public static void main(String[] args) {
SpringApplication.run(CoffeeApplication.class, args);
}
@SpringBootApplication은 자동구성을 활성화해주고, @Component가 붙은 클래스를 검색하고 Spring Bean으로 등록해준다.
그리고 @Configuration이 붙은 클래스를 검색하고 Spring Bean으로 등록해준다.
ㅇ MemberController의 기본구조
정말 기본으로 내부에 포함해야 하는 것만 작성해보면,
@RestController
@RequestMapping
public class Member Controller{
}
@RestController 애너테이션은 해달 클래스가 REST API의 리소스(여기선 Member)를 처리하기 위한 API의 엔드포인트로 정의한다는 것.
@RequestMapping은 클라이언트 요청을 처리하는 핸들러 메서드를 매핑해준다.
ㅇ CoffeeController, OrderController의 구조
기본구조는 MemberController과 동일하다!
ㅇ Controller에 핸들러 메서드를 적용
@RestController
@RequestMapping(values = "/v1/members", produces ={MediaType.APPLICATION.JSON.VALUE})
public class MemberController{
@PostMapping
public String postMember(@RequestParam("email") String email),
(@RequestParam("name") String name),
(@RequestParam("phone") String phone){
System.out.println("# email: " + email);
System.out.println("# name : " + name);
System.out.println("# phone : " + phone);
String response = email + name + phone;
return response;
}
@GetMapping
public String getMember(@PathVariable("member-id") long memberId){
System.out.println("# memberId : " + memberId);
return null;
}
}
CoffeeController에 핸들러 메서드 적용
@RestController
@RequestMapping(value = "/v1/orders", produces = MediaType.APPLICATION_JSON_VALUE)
public class OrderController{
@PostMapping
public String postOrder(@RequestParam("memberId") long memberId,
@RequestParam("coffeeId") long coffeeId) {
System.out.println("# memberId: " + memberId);
System.out.println("# coffeeId: " + coffeeId);
String response =
"{\"" +
"memberId\":\""+memberId+"\"," +
"\"coffeeId\":\""+coffeeId+"\"" +
"}";
return response;
}
@GetMapping("/{order-id}")
public String getOrder(@PathVariable("order-id") long orderId) {
System.out.println("# orderId: " + orderId);
// not implementation
return null;
}
@GetMapping
public String getOrders() {
System.out.println("# get Orders");
// not implementation
return null;
}
}
여기까지했는데 너무 졸리다. 내일마저 해야겠다.
내일 해볼건 JSON형식의 문자열을 수작업으로 작성해야하는데, 이걸 개선한 코드와, PatchMember, DelteMember, 그리고 할수있다면 Dto까지!
화이팅!
- 3편에서 계속 -
'부트캠프 > 백' 카테고리의 다른 글
자동배포방식 - Pipeline (0) | 2023.02.04 |
---|---|
Docker - container (0) | 2023.02.03 |
클라우드 컴퓨팅, AWS의 중요개념들 (1) | 2023.02.01 |
Section3-1 (0) | 2023.01.29 |
Reactive Programming (0) | 2023.01.28 |