본문으로 건너뛰기

클라우드코드 실행

서버에 등록된 클라우드코드 함수를 실행합니다.

URL 확인

이 API는 service-api.playnanoo.com 도메인을 사용합니다.

API 정보

  • URL: https://service-api.playnanoo.com/cloudcode/v20210901/run
  • Method: PUT
  • 인증 필요: 예

요청 파라미터

파라미터타입필수설명
table_codestring필수클라우드코드 테이블 코드
function_namestring필수실행할 함수 이름
function_argumentsstring필수함수 인자 (JSON 문자열)

응답 데이터

필드타입설명
Functionobject실행된 함수 정보
Logsarray함수 실행 로그
Resultobject함수 실행 결과
Errorstring에러 메시지 (에러 발생 시)
RunTimeMilliSecondsnumber실행 시간 (밀리초)

코드 예제

void UMyGame::ExecuteCloudCode(const FString& TableCode, const FString& FunctionName)
{
// 함수 인자를 JSON 문자열로 생성
TSharedPtr<FJsonObject> ArgsObject = MakeShareable(new FJsonObject);
ArgsObject->SetStringField(TEXT("InputValue1"), TEXT("value1"));
ArgsObject->SetStringField(TEXT("InputValue2"), TEXT("value2"));

FString ArgsJson;
TSharedRef<TJsonWriter<>> ArgsWriter = TJsonWriterFactory<>::Create(&ArgsJson);
FJsonSerializer::Serialize(ArgsObject.ToSharedRef(), ArgsWriter);

// 플레이어 정보가 포함된 요청 바디 생성
TSharedPtr<FJsonObject> Body = FPlayNANOOHelper::CreateRequestBody();
Body->SetStringField(TEXT("table_code"), TableCode);
Body->SetStringField(TEXT("function_name"), FunctionName);
Body->SetStringField(TEXT("function_arguments"), ArgsJson);

// JSON 문자열 변환
FString JsonBody = FPlayNANOOHelper::ToJsonString(Body);

// HTTP 요청
TSharedRef<IHttpRequest> Request = FHttpModule::Get().CreateRequest();
Request->SetURL(TEXT("https://service-api.playnanoo.com/cloudcode/v20210901/run"));
Request->SetVerb(TEXT("PUT"));
FPlayNANOOHelper::SetCommonHeaders(Request, true); // 인증 토큰 포함
Request->SetContentAsString(JsonBody);

Request->OnProcessRequestComplete().BindLambda(
[](FHttpRequestPtr Req, FHttpResponsePtr Res, bool bSuccess)
{
if (bSuccess && Res.IsValid())
{
TSharedPtr<FJsonObject> JsonObject;
TSharedRef<TJsonReader<>> Reader = TJsonReaderFactory<>::Create(Res->GetContentAsString());

if (FJsonSerializer::Deserialize(Reader, JsonObject))
{
int32 RunTime = JsonObject->GetIntegerField(TEXT("RunTimeMilliSeconds"));
UE_LOG(LogTemp, Log, TEXT("클라우드코드 실행 완료 (%dms)"), RunTime);
}
}
});

Request->ProcessRequest();
}
클라우드코드 활용

클라우드코드를 사용하면 게임 로직을 서버에서 실행하여 클라이언트 조작을 방지하고, 복잡한 계산이나 데이터 검증을 안전하게 처리할 수 있습니다.

실행 시간

클라우드코드 함수의 실행 시간이 너무 길면 타임아웃이 발생할 수 있습니다. 효율적인 코드 작성을 권장합니다.