HTTP API
您可以使用原始 HTTP API 来管理 Cloud Code 模块。
使用 API
- Admin API 文档包含管理操作(例如创建、读取、更新和删除模块)的详细描述。
- Client API 文档包含面向客户端的操作(例如运行模块)的详细描述。
这两个 API 文档都包含有关身份验证、终端以及请求和响应格式的信息,并提供相关示例。您可以采用 OpenAPI 格式下载它们,并参考它们来设置您自己的自动化过程。
要使用 Admin API,请使用服务帐户进行身份验证。
部署模块
在部署模块之前,需要先创建模块。请参阅打包代码以获取相关说明。您可以通过发送以下请求将模块 zip 文件部署到远程环境:
curl 'https://services.api.unity.com/cloud-code/v1/projects/<PROJECT_ID>/environments/<ENVIRONMENT_ID>/modules' \
--header 'Authorization: Basic <KEY_ID>:<SECRET_KEY>' \
--form 'name="Module"' \
--form 'tags="{}"' \
--form 'language="CS"' \
--form 'file=@"Module.zip"'
注意:有存储限制。请查看 Cloud Code 限制。
部署模块后,即可开始调用模块终端。
更新模块
您可以通过发送以下请求来更新模块文件和/或其标签:
curl--request PATCH 'https://services.api.unity.com/cloud-code/v1/projects/<PROJECT_ID>/environments/<ENVIRONMENT_ID>/modules/<MODULE_NAME>' \
--header 'Authorization: Basic <KEY_ID>:<SECRET_KEY>' \
--form 'tags="{}"' \
--form 'file=@"Module.zip"'
对模块终端的调用将使用更新的模块文件。
获取模块
您可以通过发送以下请求来检查已部署的模块:
curl --location 'https://services.api.unity.com/cloud-code/v1/projects/<PROJECT_ID>/environments/<ENVIRONMENT_ID>/modules/<MODULE_NAME>' \
--header 'Authorization: Basic <KEY_ID>:<SECRET_KEY>'
响应可能如下所示:
{
"name": "string",
"language": "CS",
"tags": {
"property1": "string",
"property2": "string"
},
"signedDownloadURL": "string",
"dateCreated": "2022-04-05T09:12:13Z",
"dateModified": "2022-04-05T09:12:13Z"
}
响应包含以下字段:
name
:模块的名称。language
:模块的语言。Cloud Code 模块目前仅支持 C#。tags
:自定义用户标签,定义为键/值对。signedDownloadURL
:用于下载模块 zip 文件的 URL。dateCreated
:创建模块的日期。dateModified
:上次修改模块的日期。
要预览已部署的所有模块,请发送以下请求:
curl 'https://services.api.unity.com/cloud-code/v1/projects/<PROJECT_ID>/environments/<ENVIRONMENT_ID>/modules' \
--header 'Authorization: Basic <KEY_ID>:<SECRET_KEY>'
响应可能如下所示:
{
"results": [
{
"name": "Module",
"language": "CS",
"signedDownloadURL": "example.com",
"dateCreated": "2023-04-24T14:06:02Z",
"dateModified": "2023-04-24T14:06:02Z"
},
{
"name": "AnotherModule",
"language": "CS",
"signedDownloadURL": "example.com",
"dateCreated": "2023-06-20T10:54:55Z",
"dateModified": "2023-06-20T13:55:22Z"
},
{
"name": "OtherModule",
"language": "CS",
"signedDownloadURL": "example.com",
"dateCreated": "2023-03-28T10:18:21Z",
"dateModified": "2023-03-28T10:18:21Z"
}
],
"links": {
"next": null
},
"nextPageToken": ""
}
您还可以通过设置查询参数来使用分页。例如,要获取前两个模块,请发送以下请求:
curl 'https://services.api.unity.com/cloud-code/v1/projects/<PROJECT_ID>/environments/<ENVIRONMENT_ID>/modules?limit=2' \
--header 'Authorization: Basic <KEY_ID>:<SECRET_KEY>'
然后,响应将如下所示:
{
"results": [
{
"name": "PostmanTest",
"language": "CS",
"signedDownloadURL": "example.com",
"dateCreated": "2023-04-24T14:06:02Z",
"dateModified": "2023-04-24T14:06:02Z"
},
{
"name": "TestModule",
"language": "CS",
"signedDownloadURL": "example.com",
"dateCreated": "2023-06-20T10:54:55Z",
"dateModified": "2023-06-20T13:55:22Z"
}
],
"links": {
"next": "/v1/projects/<PROJECT_ID>/environments/<ENVIRONMENT_ID>/modules?after=<TOKEN>&limit=2"
},
"nextPageToken": "<TOKEN>"
}
点击下一个链接将可以获得接下来的两个模块。
删除模块
您可以通过发送以下请求来删除模块:
curl --request DELETE 'https://services.api.unity.com/cloud-code/v1/projects/<PROJECT_ID>/environments/<ENVIRONMENT_ID>/modules/<MODULE_NAME>' \
--header 'Authorization: Basic <KEY_ID>:<SECRET_KEY>'
空的响应表示删除成功。