抢先体验版或非公开预览版程序中的 API 方法为私有方法,这意味着它们不会在标准客户端库中公开,并且默认情况下可能无法通过 HTTP 访问。本页将介绍如何访问这些预览方法。
本文档讨论了使用预览版 API 的四个选项:
- Google 提供的静态客户端库。
- 动态生成的客户端库。
- 直接 HTTP 请求。
- 您自己的自定义客户端库。
建议使用 Google 提供的静态或动态生成的库。
静态库
采用 Java、Node.js、PHP 和 C# 等语言的客户端库必须基于源代码构建。客户端库下载中为您提供了这些库,并且已包含预览方法。
您可能需要修改典型的依赖项配置以使用这些本地库,而不是导入不含预览方法的标准客户端库。
例如,如果您使用的是 Node.js 和 npm,请将 Node.js 客户端库下载 (googleapis-classroom-1.0.4.tgz
) 添加为 package.json
中的本地依赖项:
{
"name": "nodejs-classroom-example",
"version": "1.0.0",
...
"dependencies": {
"@google-cloud/local-auth": "^2.1.0",
"googleapis": "^95.0.0",
"classroom-with-addons": "file:./googleapis-classroom-1.0.4.tgz"
}
}
然后,在您的应用中,除了常规依赖项之外,还需要 classroom-with-addons
模块,并实例化该模块中的 classroom
服务:
const {authenticate} = require('@google-cloud/local-auth');
const {google} = require('googleapis');
const classroomWithAddons = require('classroom-with-addons');
...
const classroom = classroomWithAddons.classroom({
version: 'v1',
auth: auth,
});
...
动态库
采用 Python 等语言的库在运行时使用发现服务中的发现文档生成客户端库。
发现文档是关于描述和使用 REST API 的机器可读规范,用于构建客户端库、IDE 插件以及与 Google API 交互的其他工具。一项服务可能会提供多个发现文档。
您可在以下端点找到课堂 API 服务 (classroom.googleapis.com
) 的发现文档:
- https://classroom.googleapis.com/$discovery/rest?labels=<PREVIEW_LABEL>&version=v1&key=<API 密钥>
如需生成 Python 库并使用插件方法实例化 Google 课堂服务,您可以使用适当的服务、凭据和标签指定 Discovery 网址:
classroom_service_with_rubrics = googleapiclient.discovery.build(
serviceName="classroom",
version="v1",
credentials=credentials,
static_discovery=False,
discoveryServiceUrl=f"https://classroom.googleapis.com/$discovery/rest?labels=ADD_ONS_ALPHA&key=ABCXYZ")
有关每种语言的详细信息,请参阅相应的 Google API 客户端库文档。使用预览版 API 的重要区别在于指定适当的 label
。在此预览中,该标签为 ADD_ONS_ALPHA
。
HTTP 请求
如果您在没有客户端库的情况下发出 HTTP 请求,请务必将标签 (ADD_ONS_ALPHA
) 添加为 X-Goog-Visibilities
标头。
例如,要查看插件在帖子下创建的所有附件,请使用以下 curl 请求:
curl \
'https://classroom.googleapis.com/v1/courses/[courseId]/posts/[postId]/addOnAttachments?key=[YOUR_API_KEY]' \
--header 'X-Goog-Visibilities: ADD_ONS_ALPHA' \
--header 'Authorization: Bearer [YOUR_ACCESS_TOKEN]' \
--header 'Accept: application/json' \
--compressed
REST 文档中介绍了每个 HTTP 请求的 API。
自定义客户端库
如果您需要构建自己的库,请参阅构建客户端库。如何创建自己的库不在本指南的讨论范围内,但您应查看动态库部分,了解预览标签及其在 Discovery 中的角色。