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>'

空的响应表示删除成功。