언리얼 엔진 - 게임 프로젝트/AWS GameLift를 활용한 데디케이트 FPS 프로젝트

API Gateway - 6) 서비스 요청과 결과 처리

monstro 2026. 5. 15. 16:10
728x90
반응형

- 개요

데이터애셋에 저장한 API 서비스의 엔드포인트서비스를 요청하고 요청한 서비스의 결과를 처리한다

 

- C++ 사이드

1) DedicatedServers 모듈 관련

1 - 1) DedicatedServers.build.cs 파일

 

DedicatedServers 모듈이 3개의 모듈을 추가적으로 참조하도록 설정한다

  • HTTP 모듈 : REST API 통신과 같은 웹 서버와의 연결을 담당하는 모듈
  • Json 모듈 : JSON 형식의 데이터에 대한 CRUD 작업을 수행하기 위한 모듈
  • JsonUtilities 모듈 : JSON 모듈을 더 사용하기 쉽도록 만든 모듈

 

1 - 2) APITestManager 클래스

 

ListFleets_Response 함수를 새롭게 추가한다

  • ListFleetsButtonClicked 함수 : 클라이언트로부터 입력을 받아 함수를 호출하여 List Fleets 서비스 요청
  • ListFleets_Response 함수 : 요청된 List Fleets 서비스실행 결과를 처리

 

 

ListFleetsButtonClicked 함수의 로직을 위와 같이 수정한다

  • HTTP 모듈의 CreateRequest 함수를 호출하여 새로운 HTTP 요청 객체를 생성
  • 생성한 요청 객체에 서버로부터 응답이 오면 ListFleets_Response 함수를 호출하도록 바인딩
  • GetAPIEndPoint 함수에 태그를 넘겨주어 연결된 서비스의 이름을 가져오고 APIUrl 변수에 저장
  • SetURL 함수를 호출하여 요청을 보낼 주소를 지정
  • SetVerb 함수를 호출하여 HTTP 메서드를 GET 메서드로 설정
  • SetHeader 함수를 호출하여 데이터 형식이 JSON임을 알리는 헤더 정보를 추가
  • ProcessRequest 함수를 호출하여 실제 서비스를 요청
  • 이후 요청을 전송했다는 디버그 메세지를 출력

 

 

 

ListFleets_Response 콜백함수의 로직은 위와 같다

  • List Fleets 서비스 요청에 대한 결과가 도착했음을 알리는 디버그 메세지를 출력
  • 데이터가 담길 JsonObject 객체를 생성 + 서버가 보낸 응답 본문을 해석JsonReader 객체 생성
  • Deserialize 함수를 호출하여 서버가 보낸 응답 본문JSON 형식으로 해석
    • JSON 데이터 안에 FleetIds 키가 존재하는지 확인
    • 존재한다면 해당 키의 필드를 순회하면서 디버그 메세지로 데이터를 출력

 

- 최종 실행 결과

 

728x90
반응형