PluginPembatasanKecepatan

Mensimulasikan perilaku batas laju.

Cuplikan layar prompt perintah dengan Dev Proxy mensimulasikan pembatasan laju pada API GitHub.

Contoh konfigurasi

{
  "$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v4.0.0/rc.schema.json",
  "plugins": [
    {
      "name": "RateLimitingPlugin",
      "enabled": true,
      "pluginPath": "~appFolder/plugins/DevProxy.Plugins.dll",
      "configSection": "rateLimiting"
    }
  ],
  "rateLimiting": {
    "$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v4.0.0/ratelimitingplugin.schema.json",
    "costPerRequest": 2,
    "rateLimit": 120
  }
}

Properti konfigurasi

Harta benda Deskripsi Bawaan
headerLimit Nama header respons yang mengomunikasikan batas pembatasan tarif RateLimit-Limit
headerRemaining Nama header respons yang mengomunikasikan jumlah sumber daya yang tersisa sebelum reset RateLimit-Remaining
headerReset Nama header respons yang mengomunikasikan sisa waktu hingga reset RateLimit-Reset
headerRetryAfter Nama header respons yang mengkomunikasikan periode coba lagi setelah Retry-After
costPerRequest Berapa banyak sumber daya yang memerlukan biaya permintaan 2
resetTimeWindowSeconds Berapa lama dalam detik hingga reset berikutnya 60 (enam puluh)
warningThresholdPercent Persentase penggunaan yang ketika terlampaui mulai mengembalikan header respons pembatasan laju 80
rateLimit Jumlah sumber daya untuk jendela waktu 120
whenLimitExceeded Perilaku yang harus digunakan plugin ketika batas terlampaui. Gunakan Throttle atau Custom. Throttle
resetFormat Format yang digunakan untuk menentukan kapan batas laju direset. Gunakan SecondsLeft atau UtcEpochSeconds. SecondsLeft
customResponseFile File yang berisi respons kesalahan kustom yang digunakan ketika batas terlampaui. rate-limit-response.json

Opsi baris perintah

Tidak

Keterangan

Isi respons kustom

Jika Anda mengatur body properti dalam file respons kustom ke objek atau array JSON, Dev Proxy menserialisasikannya ke JSON. Jika Anda mengaturnya ke string, Dev Proxy mengirimkan string as-is, tanpa tanda kutip di sekitarnya. Karena Proksi Dev default Content-Type header ke application/json, atur Content-Type header agar sesuai dengan konten Anda saat Anda mengembalikan konten non-JSON, misalnya text/plain.

Header respons Content-Type kustom

Ketika whenLimitExceeded diatur ke Custom dan respons kustom memiliki body tetapi tidak menentukan Content-Type header, Dev Proxy mengembalikan respons dengan Content-Type: application/json header. Untuk mengembalikan tipe konten yang berbeda, tambahkan Content-Type header ke file respons kustom. Dev Proxy menggunakan nilai yang Anda tentukan.

Langkah selanjutnya