跳转到主要内容

Cloud代码 执行

执行服务器上注册的CloudCode函数。

URL确认

此API使用 service-api.playnanoo.com 域名。

API信息

  • URL: https://service-api.playnanoo.com/cloudcode/v20210901/run
  • Method: PUT
  • 需要认证: 是

请求参数

参数类型必填说明
table_codestring必填Cloud代码 表 代码
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();
}
Cloud代码 使用

使用CloudCode可以在服务器上执行游戏逻辑,防止客户端操控,并安全地处理复杂计算或数据验证。

执行 时间

CloudCode函数的执行时间过长时可能会发生超时。建议编写高效的代码。