Eklentiler erken erişiminde önizleme yöntemleri

Erken erişim veya gizli önizleme programlarındaki API yöntemleri gizlidir. Diğer bir deyişle, standart istemci kitaplıklarında sunulmaz ve HTTP üzerinden varsayılan olarak erişilemeyebilir. Bu sayfada, bu önizleme yöntemlerine nasıl erişebileceğiniz açıklanmaktadır.

Bu belgede, önizleme API'sını kullanmaya yönelik dört seçenek açıklanmaktadır:

  1. Google tarafından sağlanan statik istemci kitaplıkları.
  2. Dinamik olarak oluşturulan istemci kitaplıkları.
  3. Doğrudan HTTP istekleri.
  4. Kendi özel istemci kitaplığınız.

Google tarafından sağlanan statik veya dinamik olarak oluşturulmuş kitaplıkların kullanılması, API'nin kullanılması için önerilen yöntemdir.

Statik kitaplıklar

Java, Node.js, PHP ve C# gibi dillerdeki istemci kitaplıkları kaynaktan derlenmelidir. Bu kitaplıklar, istemci kitaplıkları indirmelerinde sizin için sağlanır ve önizleme yöntemlerine sahiptir.

Önizleme yöntemlerine sahip olmayan standart istemci kitaplıklarını içe aktarmak yerine, bu yerel kitaplıkları kullanmak için tipik bağımlılık yapılandırmanızı değiştirmeniz gerekebilir.

Örneğin, Node.js ve npm kullanıyorsanız, Node.js istemci kitaplığı indirmesini (googleapis-classroom-1.0.4.tgz) package.json konumuna yerel bağımlılık olarak ekleyin:

{
  "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"
  }
}

Ardından uygulamanızda, normal bağımlılıklara ek olarak classroom-with-addons modülünü zorunlu kılın ve bu modülden classroom hizmetini örnekleyin:

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,
});

...

Dinamik kitaplıklar

Python gibi dillerdeki kitaplıklar, Discovery hizmetinden bir Discovery Dokümanı kullanarak çalışma zamanında istemci kitaplığını oluşturur.

Keşif Belgesi, REST API'lerini tanımlamaya ve kullanmaya yönelik, makine tarafından okunabilen bir spesifikasyondur. Bu belge; istemci kitaplıkları, IDE eklentileri ve Google API'leriyle etkileşime giren diğer araçları oluşturmak için kullanılır. Bir hizmet, birden fazla keşif belgesi sağlayabilir.

Classroom API hizmeti (classroom.googleapis.com) için Keşif Dokümanları aşağıdaki uç noktada bulunabilir:

  • https://classroom.googleapis.com/$discovery/rest?labels=<PREVIEW_LABEL>&version=v1&key=<API anahtarı>

Python kitaplığını oluşturmak ve Classroom hizmetini eklenti yöntemleriyle örneklendirmek için Discovery URL'sini uygun hizmet, kimlik bilgileri ve etiketle belirtebilirsiniz:

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")

Her dille ilgili ayrıntılar için ayrı Google API istemci kitaplığı dokümanlarına bakın. Önizleme API'leriyle çalışmaya ilişkin önemli fark, uygun label değerinin belirtilmesidir. Bu önizlemede bu etiket ADD_ONS_ALPHA şeklindedir.

HTTP istekleri

İstemci kitaplığı olmadan HTTP istekleri yapıyorsanız etiketi (ADD_ONS_ALPHA) X-Goog-Visibilities üst bilgisi olarak eklediğinizden emin olun.

Örneğin, bir yayının altında eklenti tarafından oluşturulan tüm ekleri görüntülemek için aşağıdaki curl isteğini kullanın:

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

Her bir HTTP isteğinin API'si REST dokümanlarında açıklanmıştır.

Özel istemci kitaplıkları

Kendi kitaplığınızı oluşturmanız gerekiyorsa istemci kitaplıkları oluşturma konusuna bakın. Kendi kitaplığınızı oluşturmak bu kılavuzun kapsamında değildir ancak önizleme etiketleri ve bunların Discovery'deki rolleri hakkında bilgi edinmek için dinamik kitaplıklar bölümünü incelemeniz gerekir.