Framework Cloud Endpoints sebelumnya disebut Endpoint. Untuk membedakan kedua versi tersebut, halaman ini menyebut versi baru sebagai Endpoint Frameworks versi 2.0, dan versi lama sebagai Endpoint versi 1.0. Halaman ini menjelaskan cara memigrasikan aplikasi Cloud Endpoints versi 1.0 ke Endpoint Frameworks versi 2.0. Migrasi terdiri dari perubahan library dan perubahan konfigurasi aplikasi, tetapi Anda tidak perlu membuat perubahan pada kode.
Manfaat
Endpoint versi 2.0 menghadirkan sejumlah manfaat, antara lain:
- Mengurangi latensi permintaan.
- Integrasi yang lebih baik dengan fitur App Engine, seperti domain kustom.
- Fitur pengelolaan API baru.
Framework Endpoint versi 2.0 tidak memengaruhi antarmuka ke API Anda. Klien yang ada akan terus bekerja setelah migrasi tanpa perlu mengubah kode sisi klien.
Ringkasan fitur
Fitur berikut kompatibel dengan Endpoint versi 1.0:
- Protokol JSON-REST, yang digunakan oleh semua library klien Google
- Layanan penemuan
- Semua fitur autentikasi yang ada (OAuth2/OpenID Connect)
- Dukungan library klien untuk klien yang dihasilkan
- CORS (untuk pemanggil JavaScript yang tidak menggunakan library klien JavaScript Google)
- Penjelajah API
Pemisahan traffic tidak tersedia.
Fitur yang saat ini dikecualikan
Fitur berikut tidak tersedia. Jika Anda memerlukan salah satu dari hal tersebut, kirimkan permintaan fitur.
- Protokol JSON-RPC, yang diperlukan untuk klien iOS lama. Untuk membuat klien iOS untuk Endpoints Frameworks versi 2.0 API, sebaiknya gunakan library klien Objective-C Google API untuk REST API.
- ETag otomatis
- Kolom
kind
otomatis - Integrasi IDE
fields
jawaban sebagian- Pembuatan metode PATCH API otomatis
Bermigrasi dari Endpoint versi 1.0
Untuk bermigrasi dari versi 1.0:
Buat subfolder bernama
/lib
di direktori utama aplikasi Anda.Instal library dari direktori utama aplikasi Anda:
pip install -t lib google-endpoints --ignore-installed
Hapus entri
- name: endpoints
danversion 1.0
dari fileapp.yaml
aplikasi Anda di bagianlibraries
. Contoh:libraries: - name: endpoints #Remove version: 1.0 #Remove
Di bagian
libraries
pada fileapp.yaml
, tambahkan kode berikut:libraries: - name: pycrypto version: 2.6 - name: ssl version: 2.7.11
Framework Endpoint memerlukan versi library
pycrypto
danssl
ini.Di bagian
handlers
dalam fileapp.yaml
, ubah perintahurl
dari- url: /_ah/spi/.*
menjadi- url: /_ah/api/.*
.Dalam direktori utama aplikasi Anda, buat atau ubah file bernama
appengine_config.py
untuk menyertakan hal berikut:from google.appengine.ext import vendor vendor.add('lib')
Periksa string versi API Anda. String versi, yang ditentukan dalam dekorator
@endpoints.api(version='v1', ...)
, muncul di jalur API Anda. Jika Anda menentukan string versi yang kompatibel dengan standar SemVer, hanya nomor versi utama yang akan muncul di jalur API saat Anda men-deploy API. Misalnya, API bernamaecho
dengan versi2.1.0
akan memiliki jalur seperti/echo/v2
. Jika Anda mengupdateecho
API ke versi2.2.0
dan men-deploy perubahan yang kompatibel dengan versi lama, jalurnya akan tetap/echo/v2
. Dengan begitu, Anda dapat memperbarui nomor versi API saat membuat perubahan yang kompatibel dengan versi sebelumnya tanpa memutus jalur yang ada untuk klien Anda. Namun, jika Anda mengupdateecho
API ke versi3.0.0
(karena Anda men-deploy perubahan yang dapat menyebabkan gangguan), jalur akan diubah menjadi/echo/v3
.Deploy ulang aplikasi Endpoints Frameworks Anda.
Memverifikasi deployment baru
Untuk memverifikasi bahwa framework baru menyalurkan traffic:
- Kirim beberapa permintaan ke deployment baru.
- Buka halaman Cloud Logging untuk project Anda.
- Jika permintaan ditampilkan dengan jalur yang diawali dengan
/_ah/api
, maka Framework Endpoint versi 2.0 kini menyalurkan API Anda. Log tidak boleh menampilkan permintaan apa pun dengan jalur yang diawali dengan/_ah/spi
. Permintaan ini menunjukkan bahwa proxy Endpoint versi 1.0 masih menangani permintaan.
Menambahkan pengelolaan API
Framework Endpoints versi 2.0 menambahkan fitur pengelolaan API, termasuk:
- Pengelolaan kunci API
- Berbagi API
- Autentikasi pengguna
- Metrik API
- Log API
Untuk memulai, buka halaman Mulai menggunakan Endpoints Frameworks untuk Python.
Pemecahan masalah
Bagian ini menjelaskan perilaku tidak menentu umum saat bermigrasi ke Endpoint Frameworks versi 2.0 dan solusi yang disarankan.
API menampilkan 404
error, tetapi API Explorer masih mencantumkan API dengan benar
Anda harus menghapus konfigurasi Endpoint
versi 1.0 lama saat bermigrasi ke Framework Endpoints versi 2.0. Jika konfigurasi lama masih ada dalam konfigurasi aplikasi, layanan Endpoint akan terus memperlakukan aplikasi sebagai aplikasi versi 1.0. Anda mungkin melihat permintaan dalam log App Engine yang dikirim ke /_ah/spi
, yang mengakibatkan error HTTP 404
dikirim ke klien.
Hapus baris berikut, dari file
app.yaml
jika ada:handlers: - url: /_ah/spi/.* script: ...
Pastikan bagian
handlers
dalam fileapp.yaml
Anda memiliki jalur yang benar:handlers: # The endpoints handler must be mapped to /_ah/api. - url: /_ah/api/.* script: ...
Pesan error: ImportError: cannot import name locked_file
Hal ini terjadi jika dependensi Anda berisi versi library oauth2client
yang tidak kompatibel dengan App Engine. Lihat
masalah umum.