文档

支持

Cloud Code

HTTP API

Manage Cloud Code modules using raw HTTP APIs and the Admin API.
阅读时间4 分钟最后更新于 1 个月前

您可以使用原始 HTTP API 来管理 Cloud Code 模块。

使用 API

  • Admin API 文档包含管理操作(例如创建、读取、更新和删除模块)的详细描述。
  • Client API 文档包含面向客户端的操作(例如运行模块)的详细描述。
这两个 API 文档都包含有关身份验证、终端以及请求和响应格式的信息,并提供相关示例。您可以采用 OpenAPI 格式下载它们,并参考它们来设置您自己的自动化过程。 要使用 Admin API,请使用服务帐户进行身份验证。

Authorization 标头

要对请求进行身份验证,请使用基本身份验证)。创建一个服务帐户,对
<KEY_ID>:<SECRET_KEY>
进行 base64 编码,然后将其用作
Authorization
标头的值。
--header 'Authorization: Basic <SERVICE_ACCOUNT_CREDENTIALS_ENCODED>' \

部署模块

在部署模块之前,需要先创建模块。如果您使用 API 部署模块,则可能需要遵循手动工作流程。您可以通过发送以下请求将模块 zip 文件部署到远程环境:
curl 'https://services.api.unity.com/cloud-code/v1/projects/<PROJECT_ID>/environments/<ENVIRONMENT_ID>/modules' \--header 'Authorization: Basic <SERVICE_ACCOUNT_CREDENTIALS_ENCODED>' \--form 'name="Module"' \--form 'tags="{}"' \--form 'language="CS"' \--form 'file=@"Module.zip"'
部署模块后,即可开始调用模块终端。

更新模块

您可以通过发送以下请求来更新模块文件和/或其标签:
curl--request PATCH 'https://services.api.unity.com/cloud-code/v1/projects/<PROJECT_ID>/environments/<ENVIRONMENT_ID>/modules/<MODULE_NAME>' \--header 'Authorization: Basic <SERVICE_ACCOUNT_CREDENTIALS_ENCODED>' \--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 <SERVICE_ACCOUNT_CREDENTIALS_ENCODED>'
响应可能如下所示:
{ "name": "string", "language": "CS", "tags": { "property1": "string", "property2": "string" }, "signedDownloadURL": "string", "dateCreated": "2022-04-05T09:12:13Z", "dateModified": "2022-04-05T09:12:13Z", "endpoints": { "ModuleEndpoint": { "parameters": { "parameter1": "System.String", "parameter2": "System.String" }, "returnType": "System.Void" } }, "hasError": true, "errorMessage": "error message"}
响应包含以下字段:

字段

描述

name
模块的名称。
language
模块的语言。Cloud Code 模块仅支持 C#。
tags
自定义用户标签,定义为键/值对。
signedDownloadURL
用于下载模块 zip 文件的 URL。
dateCreated
创建模块的日期。
dateModified
上次修改模块的日期。
endpoints
模块中定义的终端列表,定义为键/值对。每个终端都包含键/值对形式的参数列表以及终端返回类型。
hasError
如果模块出现错误(例如生成终端时出现错误或模块出现错误),则会显示此字段。
errorMessage
模块有错误时显示的错误消息。仅当模块出现错误时才包含此字段。
要预览已部署的所有模块,请发送以下请求:
curl 'https://services.api.unity.com/cloud-code/v1/projects/<PROJECT_ID>/environments/<ENVIRONMENT_ID>/modules' \--header 'Authorization: Basic <SERVICE_ACCOUNT_CREDENTIALS_ENCODED>'
响应可能如下所示:
{ "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 <SERVICE_ACCOUNT_CREDENTIALS_ENCODED>'
然后,响应将如下所示:
{ "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 <SERVICE_ACCOUNT_CREDENTIALS_ENCODED>'
空的响应表示删除成功。

模块的 API 规范

要获取给定模块的 Open API 规范,您可以发送以下请求:
curl 'https://services.api.unity.com/cloud-code/v1/projects/<PROJECT_ID>/environments/<ENVIRONMENT_ID>/modules/<MODULE_NAME>/spec' \--header 'Authorization: Basic <SERVICE_ACCOUNT_CREDENTIALS_ENCODED>'
如需查看示例,请参阅 Admin API 规范。 响应的 mime 类型为文本/html 格式。要下载 yaml 格式的 openAPI 规范,您可以从 Unity Cloud Dashboard 的 Modules(模块)页面下载该规范。如需了解更多信息,请参阅使用 Unity Cloud Dashboard