全部产品
Search
文档中心

API Gateway:Plug-in Penyimpanan

更新时间:Jun 28, 2025

Anda dapat mengikat plug-in jenis Penyimpanan ke API untuk menyimpan respons dari layanan backend API di API Gateway. Hal ini secara efektif mengurangi beban pada backend dan mempersingkat waktu respons.

1. Catatan Penggunaan

  • Plug-in jenis Penyimpanan hanya dapat menyimpan respons terhadap permintaan API yang menggunakan metode GET.

  • Respons tidak disimpan untuk permintaan yang menggunakan domain tingkat kedua publik yang ditetapkan sistem. Domain tingkat kedua yang ditetapkan sistem hanya untuk tujuan debugging dan pengujian. Jika Anda menggunakannya untuk membuat panggilan API, Anda hanya dapat melakukan 100 panggilan per hari di wilayah di luar Tiongkok Daratan dan 1.000 panggilan per hari di wilayah di Tiongkok Daratan.

  • Saat mengonfigurasi plug-in penyimpanan, Anda dapat menggunakan parameter berikut untuk mengurutkan respons dalam cache:

    • varyByApp: menentukan apakah akan mengurutkan respons yang tersimpan berdasarkan aplikasi dari mana permintaan API dikirim.

    • varyByParameters: menentukan apakah akan mengurutkan respons yang tersimpan berdasarkan nilai parameter permintaan dalam permintaan API. Plug-in menggunakan parameter permintaan yang sama dari operasi API yang terikat dengan plug-in untuk mengurutkan respons terhadap permintaan API.

    • varyByHeaders: menentukan apakah akan mengurutkan respons yang tersimpan berdasarkan bidang header permintaan dalam permintaan API, misalnya Accept dan Accept-Language.

  • API Gateway memberikan setiap pengguna ruang penyimpanan sebesar 1 MB di setiap wilayah. Cache dibersihkan setelah kedaluwarsa. Jika cache mencapai batas ruangnya, tidak ada respons tambahan yang disimpan dalam cache.

  • Jika bidang header Cache-Control ditentukan dalam respons dari backend API, respons tersebut disimpan dalam cache berdasarkan kebijakan cache yang ditentukan. Jika bidang header Cache-Control tidak ditentukan dalam respons, respons tersebut disimpan dalam cache berdasarkan kebijakan cache default dan untuk jangka waktu yang ditentukan oleh parameter duration dari plug-in jenis Penyimpanan yang terikat dengan API.

  • Sebuah respons dapat disimpan dalam cache selama maksimal 48 jam (172.800 detik). Jika Anda menetapkan periode lebih dari 48 jam, respons tersebut tetap disimpan selama 48 jam dalam cache.

  • Secara default, API Gateway mengabaikan bidang header Cache-Control dalam permintaan klien. Anda dapat menentukan parameter clientCacheControl untuk plug-in jenis Penyimpanan untuk memutuskan apakah akan mengabaikan atau menangani bidang header Cache-Control dalam permintaan klien. Anda dapat mengatur parameter clientCacheControl ke mode berikut:

    • off: mengabaikan bidang header Cache-Control dalam semua permintaan klien.

    • all: menangani bidang header Cache-Control dalam semua permintaan klien.

    • app: menangani bidang header Cache-Control dalam permintaan dari aplikasi yang ditentukan oleh parameter apps dari plug-in jenis Penyimpanan.

  • Secara default, API Gateway hanya menyimpan bidang header Content-Type, Content-Encoding, dan Content-Language dalam respons. Jika Anda perlu menyimpan lebih banyak bidang header, tambahkan bidang header dalam parameter cacheableHeaders dari plug-in jenis Penyimpanan.

2. Konfigurasikan Plug-in

Anda dapat mengonfigurasi plug-in jenis Penyimpanan dalam format JSON atau YAML. Kedua format memiliki skema yang sama dan dapat dikonversi satu sama lain menggunakan alat konversi. Kode berikut menjelaskan template konfigurasi plug-in dalam format YAML:

---
varyByApp: false    # Menentukan apakah akan mencocokkan dan melayani respons yang tersimpan berdasarkan ID aplikasi pemanggil API. Nilai default: false.
varyByParameters:   # Menentukan apakah akan mencocokkan dan melayani respons yang tersimpan berdasarkan nilai parameter tertentu.
- userId            # Nama parameter backend. Jika parameter backend dipetakan ke parameter dengan nama berbeda, atur parameter ini ke nama parameter yang dipetakan.
varyByHeaders:      # Menentukan apakah akan mencocokkan dan melayani respons yang tersimpan berdasarkan header permintaan yang berbeda.
- Accept            # Respons yang tersimpan dicocokkan dan dilayani berdasarkan header Accept.
clientCacheControl: # API Gateway menentukan cara memproses header Cache-Control permintaan klien berdasarkan pengaturan clientCacheControl.
  mode: "app"       # Nilai valid: off, all, dan apps. Nilai default: off. off menunjukkan bahwa API Gateway mengabaikan header Cache-Control dari semua permintaan klien. all menunjukkan bahwa API Gateway memproses header Cache-Control dari semua permintaan klien. apps menunjukkan bahwa API Gateway hanya memproses header Cache-Control dari permintaan klien yang ID aplikasinya termasuk dalam daftar aplikasi yang dikonfigurasi.
  apps:             # Daftar ID aplikasi. Jika mode diatur ke app, API Gateway hanya memproses header Cache-Control dari permintaan klien yang ID aplikasinya ada dalam daftar ini.
  - 1992323         # Contoh ID aplikasi. Bukan AppKey.
  - 1239922         # Contoh ID aplikasi. Bukan AppKey.
cacheableHeaders:   # Bidang header respons yang dapat disimpan. Secara default, hanya bidang header `Content-Type`, `Content-Length`, dan `Content-Language` yang dapat disimpan.
- X-Customer-Token  # Nama header respons yang dapat disimpan.
duration: 3600      # Periode penyimpanan default respons dalam cache. Satuan: detik.        

3. Mekanisme Kerja

  • Jika permintaan API mengenai cache API, header X-Ca-Caching: true disertakan dalam respons terhadap permintaan API.

4. Batasan

  • Metadata dari satu plug-in tidak boleh melebihi ukuran 50 KB.

  • Badan respons yang melebihi ukuran 128 KB tidak dapat disimpan.

  • Untuk API pada instance bersama atau tanpa server, setiap pengguna memiliki ruang penyimpanan total maksimum 1 MB di setiap wilayah. Untuk informasi tentang batasan pada API pada instance khusus, lihat spesifikasi instance khusus.