<commit_before>Обмеження частоти запитів
===============================

Для того, щоб уникнути зловживань, вам слід подумати про додавання обмеження частоти запитів до вашого API. Наприклад,
ви можете обмежити використання API 100 запитів API протягом 10 хвилин для кожного користувача. Якщо від користувача
протягом цього періода часу приходить більша кількість запитів, буде повернена відповідь з кодом 429
("занадто багато запитів").

Для того, щоб увімкнути обмеження частоти запитів, *[[yii\web\User::identityClass|клас user identity]]* повинен реалізовувати
інтерфейс [[yii\filters\RateLimitInterface]]. Цей інтерфейс вимагає реалізації наступних трьох методів:

* `getRateLimit()`: Повертає максимальну кількість дозволених запитів та період часу, наприклад `[100, 600]`, що
  означає не більше 100 викликів API прогятом 600 секунд.
* `loadAllowance()`: Повертає кількість дозволених запитів, що залишились, та мітку часу *UNIX* останньої перевірки обмеження.
* `saveAllowance()`: Зберігає кількість дозволених запитів та поточну мітку часу *UNIX*.
<commit_msg>Update rest-rate-limiting.md<commit_after>Обмеження частоти запитів
===============================

Для того, щоб уникнути зловживань, вам слід подумати про додавання обмеження частоти запитів до вашого API. Наприклад,
ви можете обмежити використання API 100 запитів API протягом 10 хвилин для кожного користувача. Якщо від користувача
протягом цього періода часу приходить більша кількість запитів, буде повернута відповідь з кодом 429
("занадто багато запитів").

Для того, щоб увімкнути обмеження частоти запитів, *[[yii\web\User::identityClass|клас user identity]]* повинен реалізовувати
інтерфейс [[yii\filters\RateLimitInterface]]. Цей інтерфейс вимагає реалізації наступних трьох методів:

* `getRateLimit()`: Повертає максимальну кількість дозволених запитів та період часу, наприклад `[100, 600]`, що
  означає не більше 100 викликів API прогятом 600 секунд.
* `loadAllowance()`: Повертає кількість дозволених запитів, що залишились, та мітку часу *UNIX* останньої перевірки обмеження.
* `saveAllowance()`: Зберігає кількість дозволених запитів та поточну мітку часу *UNIX*.

{'fraction_non_alphanumeric': 0.09419953596287703, 'fraction_numerical': 0.018561484918793503, 'mean_word_length': 6.512195121951219, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '6700963', 'n_tokens_mistral': 903, 'n_tokens_neox': 1097, 'n_words': 243}