본문 바로가기

MSA (MicroServiceArchitecture)/MSA Application (온라인 쇼핑몰))

2. Users MSA와 Spring CloudGW 연동 및 사용자 조회 만들기

# Users MSA를 Spring Cloud GW에 연동하고 사용자를 조회하는 서비스를 만든다.

- 컨트롤러에 Health_Check 정보를 수정하여 포트 정보를 화면에 받아 오도록 설정

    @GetMapping("/health_check")
    public String status() {

        return String.format("It is Working in UserService on PORT %s",
                env.getProperty("local.server.port"));
    }

- 이전에 생성한 api gw 소스코드를 오픈한뒤 아래와 같이 application.yaml 파일의 아래의 내용을 추가한다.

      routes:
        - id: user-service
          uri: lb://USER-SERVICE #first-service project's application name
          predicates:
            - Path=/user-service/** #사용자가 입력한 조건값

- 그리고 실행하면 아래와 같이 eureka에 gw 서비스와 유저 서비스가 등록된 것을 확인할 수 있다.

- 그리고 user-service controller로 이동하여 호출하는 uri 값을 아래와 같이 수정해준다.

아래와 같이 /user-service를 앞에 붙여주는 이유는 위에서 생성한 application.yaml 파일의 predicates:에 설정된 path 경로를 호출하는 컨트롤러의 uri값에 넣어줘야 한다.

- api gw를 호출하면 아래와 같은 결과를 얻을 수 있다.

# 사용자 조회 기능 만들기

- 일단 위에서 등록한 user-service uri 주소를 prefix로 등록해 놓자.

- vo 패키지에 있는 ResponseUser에 주문 데이터 값을 반환하기 위한 코드를 작성한다.

- 그리고 vo 패키지안에 ResponseOrder라는 클래스를 생성해주고 주문 데이터 값을 반환하기 위한 코드를 작성한다.

(해당 내용는 아래의 github에 등록된 코드를 통해 내용을 확인한다.)

- 다음으로 service 패키지에 있는 userService 인터페이스를 수정한다.

그리고 인터페이스에 있는 것을 상속받아서 가져오는 것이므로 항상 재정의를 해줘야 한다.

그리고 메소드 구현을 통해 인터페이스에 있는것을 임플에서 구현한다. alt + insert

- UserController로 이동하여 GetMapping 정보를 생성한다.

전체 사용자를 조회하는 코드와 사용자 id를 개별적으로 입력하여 조회하는 코드를 따로 작성한다.

# 여기까지 작업한 내역은 아래와 같다.

- 사용자를 등록할 수 있다.

- 전체 사용자를 조회 할 수 있다.

- userId를 통해 특정 사용자만 조회 할 수 있다.


- 동작 과정은 아래와 같다.

 

- mp4 버전은 아래와 같다.

- 지금까지의 코드는 아래에 업로드 해놓았다.

https://github.com/Nanninggu/MSA-Spring-API-GW/tree/UsersMicroservice-202300403

 

GitHub - Nanninggu/MSA-Spring-API-GW

Contribute to Nanninggu/MSA-Spring-API-GW development by creating an account on GitHub.

github.com

- 끝 -