본문 바로가기
부트캠프/백

Section3-2

by 티코딩 2023. 2. 1.

spring framework

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