Menambahkan pengelolaan API

Cloud Endpoints Frameworks menyediakan fitur pengelolaan API yang sebanding dengan fitur yang disediakan oleh Extensible Service Proxy (ESP) untuk Cloud Endpoints. Framework Endpoints menyertakan gateway API bawaan yang mencegat semua permintaan dan melakukan pemeriksaan yang diperlukan, seperti autentikasi, sebelum meneruskan permintaan ke backend API. Saat backend merespons, Framework Endpoint akan mengumpulkan dan melaporkan telemetri. Anda dapat melihat metrik untuk API Anda di halaman Endpoint > Layanan di Konsol Google Cloud.

Fitur pengelolaan API yang tersedia di Framework Endpoint meliputi:

Agar API dikelola oleh Endpoint, Anda harus men-deploy dokumen OpenAPI yang mendeskripsikan API menggunakan Spesifikasi OpenAPI versi 2.0. Halaman ini menjelaskan cara membuat dan men-deploy dokumen OpenAPI yang memungkinkan Endpoint untuk mengelola API Anda.

Jika Anda tidak menambahkan pengelolaan API, API Anda tetap akan menyalurkan permintaan, tetapi API Anda tidak muncul di halaman Endpoint > Layanan di Konsol Google Cloud, dan fungsi yang disediakan oleh Endpoint, seperti logging, pemantauan, dan setelan kuota, tidak tersedia.

Menginstal dan mengonfigurasi software yang diperlukan

Jika Anda belum melakukannya, instal dan konfigurasi Google Cloud CLI untuk Python, dan tambahkan library Python Frameworks Endpoints ke direktori project API Anda agar diupload dengan kode API saat deployment

Menginstal dan mengonfigurasi gcloud CLI untuk Python

  1. Instal dan inisialisasi gcloud CLI:

    Mendownload dan menginstal gcloud CLI

  2. Instal komponen gcloud yang menyertakan ekstensi App Engine untuk Python:

    gcloud components install app-engine-python
    
  3. Update gcloud CLI:

    gcloud components update
    
  4. Pastikan gcloud CLI diberi otorisasi untuk mengakses data dan layanan Anda di Google Cloud:

    gcloud auth login
    

    Tab browser baru akan terbuka dan Anda akan diminta untuk memilih akun.

  5. Tetapkan project default ke project ID Anda. Ganti YOUR_PROJECT_ID dengan project ID Google Cloud Anda.

    gcloud config set project YOUR_PROJECT_ID
    
  6. Untuk Linux, tetapkan variabel lingkungan ENDPOINTS_GAE_SDK ke jalur folder App Engine SDK Anda:

    PATH_TO_CLOUD_SDK/platform/google_appengine
    

    Ganti PATH_TO_CLOUD_SDK dengan output perintah berikut:

    gcloud info --format="value(installation.sdk_root)"
    

Menambahkan library Python Endpoints Frameworks

  1. Pastikan Anda dapat mengompilasi ekstensi C untuk Python.

    • Windows: Memerlukan Microsoft Visual C++ 9.0 atau yang lebih baru. Anda dapat mendownload Microsoft Visual C++ Compiler untuk Python 2.7 dari pusat download Microsoft

    • Sistem operasi lainnya: Bergantung pada sistem operasinya, Anda mungkin perlu menginstal alat compiler (terkadang dalam paket bernama build-essential) dan/atau header pengembangan Python (terkadang dalam paket yang disebut python-dev).

  2. Ubah direktori ke direktori utama API Anda.

  3. Buat subdirektori /lib di direktori utama API:

    mkdir lib
    
  4. Instal library:

    pip install -t lib google-endpoints --ignore-installed
    

Membuat dokumen OpenAPI

Dari direktori utama API, buat dokumen OpenAPI menggunakan alat framework. Contoh:

Satu Kelas

Pada perintah berikut, ganti YOUR_PROJECT_ID dengan project ID Google Cloud Anda.

python lib/endpoints/endpointscfg.py get_openapi_spec main.EchoApi \
    --hostname YOUR_PROJECT_ID.appspot.com

Mengabaikan peringatan yang ditampilkan.

Beberapa Kelas

Anda dapat mencantumkan beberapa class pada command line. Endpoint membuat dokumen OpenAPI untuk setiap kombinasi nama/versi API.

Jika ingin men-deploy beberapa class API dengan nama API yang berbeda sebagai bagian dari satu layanan, Anda juga harus menambahkan flag --x-google-api-name. Mengaktifkan flag ini akan menambahkan pembatasan tambahan pada nama API Anda. Secara khusus, nama harus cocok dengan ekspresi reguler [a-z][a-z0-9]{0,39}; yaitu, nama harus terdiri dari 1-40 karakter, yang semuanya bisa berupa karakter alfabet atau angka kecil, kecuali karakter pertama tidak boleh berupa angka. Contoh:

Pada perintah berikut, ganti YOUR_PROJECT_ID dengan project ID Google Cloud Anda.

python lib/endpoints/endpointscfg.py get_openapi_spec main.FooApi main.BarApi \
   --hostname YOUR_PROJECT_ID.appspot.com \
   --x-google-api-name

Mengabaikan peringatan yang ditampilkan.

Endpoint menggunakan teks yang Anda tentukan dalam argumen hostname sebagai nama layanan. Saat Anda men-deploy API ke App Engine, entri DNS dengan nama dalam format YOUR_PROJECT_ID.appspot.com akan dibuat secara otomatis.

Men-deploy dokumen OpenAPI

Satu Kelas

gcloud endpoints services deploy echov1openapi.json

Beberapa Kelas

Jika Anda memiliki beberapa dokumen OpenAPI, cantumkan semuanya pada command line. Contoh:

 gcloud endpoints services deploy foov1openapi.json barv1openapi.json

Saat pertama kali men-deploy dokumen OpenAPI (atau beberapa dokumen), layanan Endpoint baru akan dibuat dengan nama YOUR_PROJECT_ID.appspot.com.

Setelah berhasil diselesaikan, baris yang mirip dengan berikut ini akan menampilkan ID konfigurasi layanan dan nama layanan:

Service Configuration 2017-02-13r0 uploaded for service example-project-12345.appspot.com

Pada contoh di atas, 2017-02-13r0 adalah ID konfigurasi layanan. ID konfigurasi layanan terdiri dari stempel tanggal yang diikuti dengan nomor revisi. Jika Anda men-deploy dokumen OpenAPI lagi, nomor revisi akan bertambah di ID konfigurasi layanan.

Jika Anda perlu menampilkan ID konfigurasi layanan lagi, jalankan perintah berikut, tetapi ganti YOUR_PROJECT_ID dengan project ID project Google Cloud Anda:

gcloud endpoints configs list --service=YOUR_PROJECT_ID.appspot.com

Anda dapat membuat dokumen OpenAPI sendiri dan men-deploy-nya, bukan menggunakan dokumen yang telah dibuat. Cukup ganti echov1openapi.json di atas dengan jalur ke dokumen OpenAPI Anda. Untuk informasi selengkapnya tentang cara menulis dokumen OpenAPI, lihat Ringkasan OpenAPI.

Men-deploy ulang API dan melakukan pengujian

  1. Edit file project Anda app.yaml dan tambahkan bagian env_variables sebagai berikut:

    env_variables:
      ENDPOINTS_SERVICE_NAME: YOUR_PROJECT_ID.appspot.com
      ENDPOINTS_SERVICE_VERSION: YOUR_SERVICE_VERSION
    

    Ganti YOUR_PROJECT_ID dengan project ID Google Cloud Anda, dan YOUR_SERVICE_VERSION dengan ID konfigurasi layanan Anda dari bagian sebelumnya. Dengan tambahan file app.yaml ini, Endpoint akan mengelola API Anda setelah Anda men-deploy ulang aplikasi.

  2. Deploy ulang aplikasi Anda:

    gcloud app deploy
    
  3. Tunggu beberapa saat sampai deployment berhasil, abaikan pesan peringatan. Setelah deployment selesai, pesan yang mirip dengan berikut ini akan ditampilkan:

    File upload done.
    Updating service [default]...done.
    
  4. Uji keberhasilan deployment ulang, misalnya, menggunakan curl:

    curl --request POST \
        --header "Content-Type: application/json" \
        --data '{"content":"echo"}' \
        https://YOUR_PROJECT_ID.appspot.com/_ah/api/echo/v1/echo?n=2
    

    Ganti echo dengan nama API Anda.

    Hasilnya akan menampilkan sesuatu yang mirip dengan:

    {
     "content": "echo echo"
    }
    
  5. Buat beberapa permintaan tambahan ke API Anda.

  6. Untuk melihat metrik API Anda, buka halaman Endpoint > Layanan di Konsol Google Cloud untuk project Anda:

    Buka halaman Layanan Endpoint