Я пишу веб-приложение на С#. Одной функциональностью является то, что сервер отправит push-уведомление, предлагающее клиенту возможность совершить раунд работы. Клиент может принять или отказаться от этой работы.
Однако, если клиент слишком долго реагирует, сервер увидит это как скрытый отказ и предложит часть работы кому-то другому.
Вот выдержка конечной точки контроллера на сервере, где клиент может опубликовать его принятие текущего раунда
public HttpResponseMessage PostAcceptRound(PersonData accepter){
Round currentRound = repo.GetCurrentRound();
if(currentRound.offeredTo.id == accepter.id){
repo.RoundAccepted(currentRound.id);
return Request.CreateResponse<String>(HttpStatusCode.OK, "Round has been accepted");
}
else{
//return appropriate response
}
}
Мой вопрос: каков соответствующий ответ для клиента, который слишком долго принимает?
Моя первоначальная реакция заключалась в том, что я должен отправить сообщение об ошибке "BadRequest". Тем не менее, это не так, как если кто-то отказывается от позднего, это плохо сформированный запрос или что-то неожиданное. Действительно, кажется, что принятие слишком поздно будет ситуацией, которая часто случается с использованием этого приложения.
408 = "Тайм-аут запроса" мне кажется наиболее подходящим.
http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html