在任何 Google 服务上调用任何方法()()

熟悉代码以在一项 Google 服务上调用一种方法后,你就可以推断出如何在任何 Google 服务上调用任何方法。 **

首先,我们使用前一个示例中实例化的 credential 对象建立服务连接:

CloudResourceManagerService service = new CloudResourceManagerService(
    new BaseClientService.Initializer()
    {
        HttpClientInitializer = credential,
        ApplicationName = "Our First Google API Client"
    }
);

然后我们可以调用服务提供的方法。有哪些方法?

https://cloud.google.com/resource-manager/docs/apis

Projects.Create 的基本 REST 请求是什么?

https://cloud.google.com/resource-manager/reference/rest/v1/projects/create

好的……让我们编写代码。

代码需要 projectId 的字符串值。项目 ID 是唯一标识符。我建议你使用系统命名项目以帮助你识别它们。

Projects.Create 期待一个 Data.Project 对象。这个对象是一个强制性属性,我们将提供的项目 ID,但我们也可以提供项目名称,标签,项目的父项等详细信息。

Data.Operation operation1 = service.Projects.Create(
    new Data.Project()
    {
        ProjectId = projectId,
    }
).Execute();

项目创建是异步处理的。我们得到一个 Operation 对象,我们必须轮询它以确定何时创建项目。操作具有唯一标识操作的 Name 属性。下一部分代码会调查平台“我们还完成了吗?”。当我们的新业务包括 Done 属性 True 时,将创建该项目。

Data.Operation operation2;
do
{
    operation2 = service.Operations.Get(operation1.Name).Execute();
    System.Threading.Thread.Sleep(1000);
} while (operation2.Done != true);

为了完整性,并且希望在很多年后使用你的项目后,你可能需要删除你的项目。我们只需调用 Projects.Delete 并提供我们的项目 ID。这也会返回一个操作,我们应该真正轮询这个操作,直到它最终完成。然后我们的项目将被删除。

var operation3 = service.Projects.Delete(projectId).Execute();

而已!