Framework Cloud Endpoints sebelumnya disebut Endpoints. Untuk membedakan kedua versi tersebut, halaman ini menyebut versi baru sebagai Endpoints Frameworks versi 2.0, dan versi lama sebagai Endpoints versi 1.0. Halaman ini menjelaskan cara memigrasikan aplikasi Cloud Endpoints versi 1.0 ke Endpoints Frameworks versi 2.0. Migrasi terdiri dari perubahan library dan perubahan konfigurasi aplikasi, tetapi Anda tidak perlu melakukan perubahan apa pun pada kode.
Manfaat
Endpoint versi 2.0 memberikan sejumlah manfaat, termasuk:
- Mengurangi latensi permintaan.
- Integrasi yang lebih baik dengan fitur App Engine, seperti domain kustom.
- Fitur pengelolaan API baru.
Endpoints Frameworks versi 2.0 tidak memengaruhi antarmuka ke API Anda. Klien yang ada akan terus berfungsi setelah migrasi tanpa perubahan kode sisi klien.
Ringkasan fitur
Fitur berikut kompatibel dengan Endpoints 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 dibuat
- CORS (untuk pemanggil JavaScript yang tidak menggunakan library klien JavaScript Google)
- API Explorer
Pemisahan traffic tidak tersedia.
Fitur yang saat ini dikecualikan
Fitur berikut tidak tersedia. Jika Anda memerlukan salah satu fitur tersebut, kirimkan permintaan fitur.
- Protokol JSON-RPC, yang diperlukan untuk klien iOS lama. Untuk membuat klien iOS untuk API Endpoints Frameworks versi 2.0, sebaiknya Anda menggunakan library klien Objective-C Google API untuk REST API.
- ETag Otomatis
- Kolom
kind
otomatis - Integrasi IDE
fields
respons sebagian- Pembuatan metode PATCH API otomatis
Bermigrasi dari Endpoints 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
dalam 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/.*
.Di 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 Anda, yang ditentukan dalam dekorator
@endpoints.api(version='v1', ...)
, akan 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 yang disebutecho
dengan versi2.1.0
akan memiliki jalur seperti/echo/v2
. Jika Anda mengupdate APIecho
ke versi2.2.0
dan men-deploy perubahan yang kompatibel dengan versi lama, jalurnya tetap/echo/v2
. Hal ini memungkinkan Anda memperbarui nomor versi API saat membuat perubahan yang kompatibel dengan versi lama tanpa merusak 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 Frameworks Endpoints Anda.
Memverifikasi deployment baru
Untuk memverifikasi bahwa framework baru menayangkan traffic:
- Kirim beberapa permintaan ke deployment baru.
- Buka halaman Cloud Logging untuk project Anda.
- Jika permintaan ditampilkan dengan memiliki jalur yang dimulai dengan
/_ah/api
, berarti Endpoints Frameworks versi 2.0 kini menayangkan API Anda. Log tidak boleh menampilkan permintaan apa pun dengan jalur yang dimulai dengan/_ah/spi
. Permintaan ini menunjukkan bahwa proxy Endpoints versi 1.0 masih menayangkan permintaan.
Menambahkan pengelolaan API
Endpoints Frameworks 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 Framework Endpoints untuk Python.
Pemecahan masalah
Bagian ini menjelaskan perilaku tidak stabil yang umum terjadi saat bermigrasi ke Endpoints Frameworks versi 2.0 dan solusi yang disarankan.
API menampilkan error 404
, tetapi Penjelajah API masih mencantumkan API dengan benar
Anda harus menghapus konfigurasi Endpoint versi 1.0 lama saat bermigrasi ke Endpoints Frameworks versi 2.0. Jika konfigurasi lama masih ada dalam konfigurasi aplikasi, layanan Endpoints 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.