Cloud Endpoints Frameworks menyediakan fitur pengelolaan API yang sebanding dengan fitur yang disediakan Extensible Service Proxy (ESP) untuk Cloud Endpoints. Endpoints Frameworks menyertakan gateway API bawaan yang mencegat semua permintaan dan melakukan pemeriksaan yang diperlukan, seperti autentikasi, sebelum meneruskan permintaan ke backend API. Saat backend merespons, Endpoints Frameworks akan mengumpulkan dan melaporkan telemetri. Anda dapat melihat metrik untuk API di halaman Endpoints > Services di Google Cloud konsol.
Fitur pengelolaan API yang tersedia di Endpoints Frameworks mencakup:
Agar API Anda dikelola oleh Endpoints, Anda harus men-deploy dokumen OpenAPI yang mendeskripsikan API Anda menggunakan versi 2.0 dari Spesifikasi OpenAPI. Halaman ini menjelaskan cara membuat dan men-deploy dokumen OpenAPI yang memungkinkan Endpoints mengelola API Anda.
Jika Anda tidak menambahkan pengelolaan API, API Anda akan tetap melayani permintaan, tetapi API Anda tidak akan muncul di halaman Endpoints > Services diGoogle Cloud konsol, dan fungsi yang disediakan oleh Endpoints, seperti logging, monitoring, dan menetapkan kuota, tidak akan tersedia.
Menginstal dan mengonfigurasi software yang diperlukan
Jika Anda belum melakukannya, instal dan konfigurasi Google Cloud CLI untuk Python, dan tambahkan library Python Endpoints Frameworks ke direktori project API Anda sehingga diupload dengan kode API saat deployment
Menginstal dan mengonfigurasi gcloud CLI untuk Python
Instal dan lakukan inisialisasi gcloud CLI:
Instal komponen
gcloudyang menyertakan ekstensi App Engine untuk Python:gcloud components install app-engine-pythonUpdate gcloud CLI:
gcloud components updatePastikan gcloud CLI diizinkan untuk mengakses data dan layanan Anda di Google Cloud:
gcloud auth loginTab browser baru akan terbuka dan Anda akan diminta untuk memilih akun.
Tetapkan project default ke project ID Anda. Ganti
YOUR_PROJECT_IDdengan project ID Anda Google Cloud .gcloud config set project YOUR_PROJECT_ID
Untuk Linux, tetapkan variabel lingkungan
ENDPOINTS_GAE_SDKke jalur folder App Engine SDK Anda:PATH_TO_CLOUD_SDK/platform/google_appengine
Ganti
PATH_TO_CLOUD_SDKdengan output perintah berikut:gcloud info --format="value(installation.sdk_root)"
Menambahkan library Python Endpoints Frameworks
Pastikan Anda dapat mengompilasi ekstensi C untuk Python.
Windows: Microsoft Visual C++ 9.0 atau yang lebih baru diperlukan. Anda dapat mendownload Microsoft Visual C++ Compiler untuk Python 2.7 dari pusat download Microsoft
Sistem operasi lainnya: Bergantung pada sistem operasi Anda, Anda mungkin perlu menginstal alat kompilator (terkadang dalam paket yang disebut
build-essential) dan/atau header pengembangan Python (terkadang dalam paket yang disebutpython-dev).
Ubah direktori ke direktori utama API Anda.
Buat subdirektori
/libdi direktori utama API:mkdir libInstal library:
pip install -t lib google-endpoints --ignore-installed
Membuat dokumen OpenAPI
Dari direktori utama API, buat dokumen OpenAPI menggunakan alat framework. Contoh:
Class Tunggal
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
Abaikan peringatan yang ditampilkan.
Beberapa Class
Anda dapat mencantumkan beberapa class di command line. Endpoints 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 batasan 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 dapat berupa karakter alfabet huruf kecil atau angka, kecuali karakter pertama tidak boleh berupa angka. Contoh:
Pada perintah berikut, ganti YOUR_PROJECT_ID
dengan Google Cloud project ID Anda.
python lib/endpoints/endpointscfg.py get_openapi_spec main.FooApi main.BarApi \ --hostname YOUR_PROJECT_ID.appspot.com \ --x-google-api-name
Abaikan peringatan yang ditampilkan.
Endpoints 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
Class Tunggal
gcloud endpoints services deploy echov1openapi.json
Beberapa Class
Jika Anda memiliki beberapa dokumen OpenAPI, cantumkan semuanya di command line. Contoh:
gcloud endpoints services deploy foov1openapi.json barv1openapi.json
Saat Anda men-deploy dokumen OpenAPI (atau dokumen) untuk pertama kalinya, layanan Endpoints 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 dalam ID konfigurasi layanan.
Jika Anda perlu menampilkan ID konfigurasi layanan lagi, jalankan perintah berikut, tetapi ganti YOUR_PROJECT_ID dengan project ID
project Anda: Google Cloud
gcloud endpoints configs list --service=YOUR_PROJECT_ID.appspot.com
Anda dapat membuat dokumen OpenAPI sendiri dan men-deploy-nya, bukan menggunakan dokumen yang dibuat. Cukup ganti echov1openapi.json di atas dengan jalur ke dokumen OpenAPI Anda. Untuk mengetahui informasi selengkapnya tentang cara menulis dokumen OpenAPI, lihat
Ringkasan OpenAPI.
Men-deploy ulang API dan melakukan pengujian
Edit file
app.yamlproject Anda dan tambahkan bagianenv_variablessebagai berikut:env_variables: ENDPOINTS_SERVICE_NAME: YOUR_PROJECT_ID.appspot.com ENDPOINTS_SERVICE_VERSION: YOUR_SERVICE_VERSION
Ganti
YOUR_PROJECT_IDdengan project ID Anda Google Cloud , danYOUR_SERVICE_VERSIONdengan ID konfigurasi layanan Anda dari bagian sebelumnya. Dengan penambahan ini ke fileapp.yaml, Endpoints akan mengelola API Anda setelah Anda men-deploy ulang aplikasi.Deploy ulang aplikasi Anda:
gcloud app deployTunggu beberapa saat hingga deployment berhasil, dan abaikan pesan peringatan. Setelah deployment selesai, pesan yang mirip dengan berikut ini akan ditampilkan:
File upload done. Updating service [default]...done.Uji deployment ulang yang berhasil, 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=2Ganti
echodengan nama API Anda.Hasilnya akan menampilkan sesuatu yang mirip dengan:
{ "content": "echo echo" }Buat beberapa permintaan tambahan ke API Anda.
Untuk melihat metrik API, buka halaman Endpoints > Services di Google Cloud konsol untuk project Anda: