Bermigrasi ke Cloud Endpoints Frameworks versi 2.0

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:

  1. Buat subfolder bernama /lib di direktori utama aplikasi Anda.

  2. Instal library dari direktori utama aplikasi Anda:

     pip install -t lib google-endpoints --ignore-installed
    
  3. Hapus entri - name: endpoints dan version 1.0 dari file app.yaml aplikasi Anda di bagian libraries. Contoh:

    libraries:
    - name: endpoints   #Remove
      version: 1.0      #Remove
    
  4. Di bagian libraries dalam file app.yaml, tambahkan kode berikut:

    libraries:
    - name: pycrypto
      version: 2.6
    - name: ssl
      version: 2.7.11
    

    Framework Endpoint memerlukan versi library pycrypto dan ssl ini.

  5. Di bagian handlers dalam file app.yaml, ubah perintah url dari - url: /_ah/spi/.* menjadi - url: /_ah/api/.*.

  6. 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')
    
  7. 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 disebut echo dengan versi 2.1.0 akan memiliki jalur seperti /echo/v2. Jika Anda mengupdate API echo ke versi 2.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 mengupdate echo API ke versi 3.0.0 (karena Anda men-deploy perubahan yang dapat menyebabkan gangguan), jalur akan diubah menjadi /echo/v3.

  8. Deploy ulang aplikasi Frameworks Endpoints Anda.

Memverifikasi deployment baru

Untuk memverifikasi bahwa framework baru menayangkan traffic:

  1. Kirim beberapa permintaan ke deployment baru.
  2. Buka halaman Cloud Logging untuk project Anda.

    Buka halaman Logs Explorer

  3. 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.

  1. Hapus baris berikut dari file app.yaml jika ada:

    handlers:
    - url: /_ah/spi/.*
      script: ...
    
  2. Pastikan bagian handlers dalam file app.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.