Gateway
실제 외부와의 직접 통신을 담당
반드시 인터페이스로 구성
단순 통신만 하는 역할을 해야하며 절대 비지니스 로직, 도메인 로직이 들어가면 안됨.
public interface IHttpClientGateway
{
// Return json object from server using newtonsoft json
public UniTask<TResponse> RequestAsync<TRequest, TResponse>(string url, TRequest requestData);
}
public class HttpClientGateway : IHttpClientGateway
{
public async UniTask<TResponse> RequestAsync<TRequest, TResponse>(string url, TRequest requestData)
{
string jsonRequest = JsonConvert.SerializeObject(requestData); // 직렬화
string jsonResponse = "{}"; // 서버에서 받은 JSON 응답
await UniTask.Delay(1000); // 서버 통신 대신 1초 대기
return JsonConvert.DeserializeObject<TResponse>(jsonResponse); // 역직렬화
}
}
Last updated