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 文档包含面向客户端的操作(例如运行模块)的详细描述。
Authorization 标头
要对请求进行身份验证,请使用基本身份验证)。创建一个服务帐户,对<KEY_ID>:<SECRET_KEY>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"}
字段 | 描述 |
|---|---|
| 模块的名称。 |
| 模块的语言。Cloud Code 模块仅支持 C#。 |
| 自定义用户标签,定义为键/值对。 |
| 用于下载模块 zip 文件的 URL。 |
| 创建模块的日期。 |
| 上次修改模块的日期。 |
| 模块中定义的终端列表,定义为键/值对。每个终端都包含键/值对形式的参数列表以及终端返回类型。 |
| 如果模块出现错误(例如生成终端时出现错误或模块出现错误),则会显示此字段。 |
| 模块有错误时显示的错误消息。仅当模块出现错误时才包含此字段。 |
响应可能如下所示: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 规范,您可以发送以下请求:如需查看示例,请参阅 Admin API 规范。 响应的 mime 类型为文本/html 格式。要下载 yaml 格式的 openAPI 规范,您可以从 Unity Cloud Dashboard 的 Modules(模块)页面下载该规范。如需了解更多信息,请参阅使用 Unity Cloud Dashboard。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>'