Metody interfejsu API w programach wcześniejszego dostępu lub prywatnej wersji testowej są prywatne, co oznacza, że nie są widoczne w standardowych bibliotekach klienta i mogą być domyślnie niedostępne przez HTTP. Na tej stronie dowiesz się, jak uzyskać dostęp do tych metod podglądu.
W tym dokumencie omawiamy 4 sposoby korzystania z interfejsu API w wersji testowej:
- Statyczne biblioteki klienta udostępnione przez Google.
- Dynamicznie generowane biblioteki klienta.
- Bezpośrednie żądania HTTP.
- Twoja własna biblioteka klienta.
Zalecamy korzystanie z dostarczonych przez Google bibliotek statycznych lub generowanych dynamicznie.
Biblioteki statyczne
Biblioteki klienta w językach takich jak Java, Node.js, PHP i C# należy tworzyć na poziomie źródłowym. Te biblioteki są dostępne w plikach do pobrania w bibliotekach klienta i zawierają już metody podglądu.
Może być konieczne zmodyfikowanie typowej konfiguracji zależności, aby użyć tych bibliotek lokalnych, zamiast importować standardowe biblioteki klienta, które nie mają metod podglądu.
Jeśli na przykład używasz Node.js i npm, dodaj plik pobierania biblioteki klienta Node.js (googleapis-classroom-1.0.4.tgz
) jako zależność lokalną w 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"
}
}
Następnie w aplikacji wymagaj modułu classroom-with-addons
oprócz zwykłych zależności i utwórz instancję usługi classroom
z tego modułu:
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,
});
...
Biblioteki dynamiczne
Biblioteki w językach takich jak Python generują bibliotekę klienta w czasie działania za pomocą dokumentu Discovery z usługi wykrywania.
Dokument Discovery to czytelna dla komputera specyfikacja do opisywania i używania interfejsów API REST. Służy do tworzenia bibliotek klienta, wtyczek IDE i innych narzędzi, które wchodzą w interakcję z interfejsami API Google. Jedna usługa może dostarczać wiele dokumentów opisujących.
Dokumenty Discovery dotyczące usługi Classroom API (classroom.googleapis.com
) znajdziesz tutaj:
- https://classroom.googleapis.com/$discovery/rest?labels=<PREVIEW_LABEL>&version=v1&key=<klucz interfejsu API>
Aby wygenerować bibliotekę w Pythonie i utworzyć instancję usługi Classroom przy użyciu metod dodatków, możesz określić Discovery URL z odpowiednią usługą, danymi logowania i etykietą:
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")
Szczegółowe informacje o poszczególnych językach znajdziesz w dokumentacji biblioteki klienta interfejsów API Google. Ważną różnicą w przypadku korzystania z interfejsów API w wersji testowej jest określenie odpowiedniej właściwości label
. Na tym podglądzie ta etykieta to ADD_ONS_ALPHA
.
Żądania HTTP
Jeśli wysyłasz żądania HTTP bez biblioteki klienta, pamiętaj o umieszczeniu etykiety (ADD_ONS_ALPHA
) jako nagłówka X-Goog-Visibilities
.
Aby na przykład wyświetlić wszystkie załączniki utworzone przez dodatek pod postem, użyj tego żądania 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
Interfejs API każdego żądania HTTP został opisany w dokumentacji REST.
Niestandardowe biblioteki klienta
Jeśli chcesz utworzyć własną bibliotekę, przeczytaj artykuł o tworzeniu bibliotek klienta. Tworzenie własnej biblioteki nie leży w zakresie tego przewodnika, ale w sekcji Biblioteki dynamiczne znajdziesz więcej informacji o etykietach podglądu i ich roli w odkrywaniu.