Как обрабатывать запросы на повторяющиеся записи в веб-интерфейсе - PullRequest
0 голосов
/ 31 октября 2018

У меня есть сценарий, когда пользователь вводит все свои данные в форму и нажимает кнопку «Отправить» (Post request) в Asp.Net Web api. Что делать, если пользователь нажимает кнопку «Отправить» дважды. Как мне обработать запрос.

Любой, пожалуйста, ответьте на этот вопрос.

Ответы [ 2 ]

0 голосов
/ 01 ноября 2018

Я полностью не согласен с @keysl, если вы создаете API, вам, вероятно, следует подумать о том, чтобы сделать его RESTFul, а остальные службы должны быть идемпотентными, прочитать эту статью возможно:

"В контексте API REST, когда выполнение нескольких идентичных запросов имеет тот же эффект, что и создание одного запроса"

0 голосов
/ 31 октября 2018

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

Вы можете утверждать, что @sm отключает кнопку отправки, когда пользователь отправляет запрос, но если вы отправляете чистый api и не несете ответственности за потребителя. Тогда об этом не может быть и речи

То, что мы делаем в нашем офисе, это ff.

  1. Tokenized Рукопожатие. Каждый запрос POST, PUT, PATCH, DELETE (почти любой запрос не GET) должен получить токен с сервера перед доступом к конечной точке API. В этой части вы можете проверить, сколько раз пользователь запрашивал токен для использования. Это сложно, но вы можете отслеживать активность пользователя. Вы также можете установить порог запроса и запретить пользователю, если он превышает разумный запрос, который человек может отправить без намерения нарушить ваш API.

  2. Используйте специальный секретный атрибут заголовка. Если вы отправляете API для частного коммерческого использования, используйте секретный ключ заголовков и отдайте кредит доверенной стороне, которая будет использовать ваш API.

  3. Различные модели для GET и POST. И для бога ИСПОЛЬЗОВАТЬ DTO вместо использования класса POCO прямо в вашем методе действия

  4. Я не совсем знаком, но наши DEVOps гарантируют, что, если мы отправляем публичный API. В вашей среде IIS prod должна быть настроена фильтрация DDOS.

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