Bermigrasi ke Cloud Endpoints Frameworks versi 2.0

Cloud Endpoints Frameworks sebelumnya disebut Endpoints. Untuk membedakan kedua versi, 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 Anda.

Manfaat

Endpoints versi 2.0 memberikan sejumlah manfaat, termasuk:

  • Latensi permintaan yang lebih rendah.
  • 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 versi lama Endpoints 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 ini, kirimkan permintaan fitur.

  • Protokol JSON-RPC, yang diperlukan untuk klien iOS lama. Untuk membuat klien iOS untuk API Endpoints Frameworks versi 2.0, sebaiknya gunakan 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
    

    Frameworks Endpoints memerlukan library pycrypto dan ssl versi ini.

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

  6. Di direktori root 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 decorator @endpoints.api(version='v1', ...), muncul di jalur API Anda. Jika Anda menentukan string versi yang kompatibel dengan standar SemVer, hanya nomor versi utama yang 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 echo API ke versi 2.2.0 dan men-deploy perubahan yang kompatibel dengan versi lama, jalur akan tetap /echo/v2. Dengan demikian, Anda dapat memperbarui nomor versi API saat melakukan perubahan yang kompatibel mundur 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 menyebabkan gangguan), jalur akan diubah menjadi /echo/v3.

  8. Deploy ulang aplikasi Endpoints Frameworks Anda.

Memverifikasi deployment baru

Untuk memverifikasi bahwa framework baru melayani 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 jalur yang dimulai dengan /_ah/api, berarti Endpoints Frameworks versi 2.0 kini melayani API Anda. Log tidak boleh menampilkan permintaan dengan jalur yang diawali dengan /_ah/spi. Permintaan ini menunjukkan bahwa proxy Endpoints versi 1.0 masih melayani 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 Endpoints Frameworks untuk Python.

Pemecahan masalah

Bagian ini menjelaskan perilaku tidak menentu yang umum saat bermigrasi ke Endpoints Frameworks versi 2.0 dan solusi yang disarankan.

API menampilkan error 404, tetapi API Explorer masih mencantumkan API dengan benar

Anda harus menghapus konfigurasi Endpoints 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 di log App Engine yang dikirim ke /_ah/spi, yang menghasilkan error HTTP 404 yang dikirim ke klien.

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

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