Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Sekilas
Tujuan: Menyimulasikan perilaku pembatasan tarif pada API apa pun
Waktu: 10 menit
Plugins:RateLimitingPlugin
Prasyarat:Menyiapkan Proksi Dev
Header Batas Tarif digunakan dalam respons HTTP untuk membatasi jumlah permintaan yang dapat dibuat klien dalam periode waktu tertentu.
Server mengirimkan header ini sebagai respons terhadap permintaan klien untuk menunjukkan berapa banyak permintaan yang diizinkan dan berapa banyak permintaan yang tersisa sebelum batas tercapai.
Bidang header respons RateLimit-Limit menunjukkan kuota permintaan yang terkait dengan klien dalam periode waktu saat ini. Jika klien melebihi batas tersebut, klien mungkin tidak dilayani.
Dukungan batas tarif kustom
Saat Anda melebihi batas laju, beberapa API menggunakan perilaku kustom, seperti mengembalikan 403 Forbidden kode status dengan pesan kesalahan kustom. Dev Proxy memungkinkan Anda mensimulasikan perilaku kustom ini dengan menggunakan Custom nilai untuk whenLimitExceeded properti .
Contoh berikut menunjukkan bagaimana Anda dapat mengonfigurasi bagaimana Anda dapat mengonfigurasi RateLimitingPlugin dalam file devproxyrc untuk mensimulasikan batas laju untuk API GitHub.
File: devproxyrc.json (bagian konfigurasi rateLimiting)
{
"rateLimiting": {
"headerLimit": "X-RateLimit-Limit",
"headerRemaining": "X-RateLimit-Remaining",
"headerReset": "X-RateLimit-Reset",
"costPerRequest": 1,
"resetTimeWindowSeconds": 3600,
"warningThresholdPercent": 0,
"rateLimit": 60,
"resetFormat": "UtcEpochSeconds",
"whenLimitExceeded": "Custom",
"customResponseFile": "github-rate-limit-exceeded.json"
}
}
customResponseFile berisi respons yang dikembalikan proksi saat aplikasi Anda mencapai batas tarif.
File: github-rate-limit-exceeded.json
{
"statusCode": 403,
"headers": [
{
"name": "Content-Type",
"value": "application/json; charset=utf-8"
}
],
"body": {
"message": "You have exceeded a secondary rate limit and have been temporarily blocked from content creation. Please retry your request again later.",
"documentation_url": "https://docs.github.com/rest/overview/resources-in-the-rest-api#secondary-rate-limits"
}
}
Langkah berikutnya
Pelajari selengkapnya tentang RateLimitingPlugin.
Lihat juga
- RateLimitingPlugin - Referensi lengkap
- Apa itu pembatasan tarif - Konsep
- Cara menangani pembatasan laju - Praktik terbaik
- Glosarium - Terminologi Proxy Pengembang