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
kindotomatis - Integrasi IDE
fieldsrespons sebagian- Pembuatan metode PATCH API otomatis
Bermigrasi dari Endpoints versi 1.0
Untuk bermigrasi dari versi 1.0:
Buat subfolder bernama
/libdi direktori utama aplikasi Anda.Instal library dari direktori utama aplikasi Anda:
pip install -t lib google-endpoints --ignore-installedHapus entri
- name: endpointsdanversion 1.0dari fileapp.yamlaplikasi Anda di bagianlibraries. Contoh:libraries: - name: endpoints #Remove version: 1.0 #RemoveDi bagian
librariesdalam fileapp.yaml, tambahkan kode berikut:libraries: - name: pycrypto version: 2.6 - name: ssl version: 2.7.11Framework Endpoint memerlukan versi library
pycryptodansslini.Di bagian
handlersdalam fileapp.yaml, ubah perintahurldari- url: /_ah/spi/.*menjadi- url: /_ah/api/.*.Di direktori utama aplikasi Anda, buat atau ubah file bernama
appengine_config.pyuntuk 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 disebutechodengan versi2.1.0akan memiliki jalur seperti/echo/v2. Jika Anda mengupdate APIechoke versi2.2.0dan 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 mengupdateechoAPI 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.yamljika ada:handlers: - url: /_ah/spi/.* script: ...Pastikan bagian
handlersdalam fileapp.yamlAnda 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.