Ограничить количество запросов от клиента - PullRequest
0 голосов
/ 05 апреля 2019

Я хочу вернуться из запроса, если этот клиент уже обрабатывает запрос.

// Controller

public async Task<IHttpActionResult> GetBarcode(string ticketId)
{
    var customerGuid = Guid.Parse(User.Identity.GetUserId());
    var ticketGuid = Guid.Parse(ticketId);

    return Json(await _service.GetBarcode(customerGuid, ticketGuid));
}

// Service

public async Task<TicketBarcode> GetBarcode(Guid customerId, Guid ticketId)
{

    // if already processing a request with this customerId and ticketId, then return

    // if not, then proceed

Он вызывает другой API, который не может справиться с давлением.

Прошу совета, как этого добиться. Если вам нужна дополнительная информация, пожалуйста, прокомментируйте.

1 Ответ

0 голосов
/ 05 апреля 2019

Если я правильно понял ваш вопрос; Вы хотите что-то, что мешает пользователям часто вызывать ваши apis. Ну, есть несколько способов достичь этого.

Вы можете использовать Radis; он предоставляет различные шаблоны для ограничителя скорости , с помощью которых вы можете настроить ограничение скорости, например максимум десять запросов в секунду на IP-адрес.

Другой простой способ - использовать пакет nuget WebApiThrottle.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...