2017-07-04 1 views
1

Webanwendungsoperationen sollen im Allgemeinen schnell sein, um lange Wartezeiten für Benutzer zu vermeiden. Einige Operationen, die die Webanwendung ausführen kann, können jedoch rechenintensiv sein und eine gewisse Zeit beanspruchen. Was ist die beste Vorgehensweise in REST bei solchen Vorgängen, die einige Minuten dauern können und dennoch eine sofortige Reaktion auf die Benutzer erfordern? Ist es in Ordnung, dass die Webanwendung mehrere Minuten benötigt, um die Antwort der HTTP-Anforderung zurückzugeben, oder ist es besser, eine 202-Antwort im Hintergrund an einer anderen Stelle zu senden und dem Benutzer dann eine Form der Benachrichtigung bereitzustellen?Lang andauernde Operationen in der Webanwendung

Antwort

0

Ist es in Ordnung für die Web-Anwendung mehrere Minuten in Anspruch nehmen die Antwort des HTTP-Anforderung

Nr Ein Teil des Problems mit diesem Ansatz zurückzukehren, ist, dass, wenn der Server nicht anerkennt die Der Kunde wird nicht rechtzeitig wissen, dass er sein beabsichtigtes Ziel erreicht hat.

Ist es besser, eine Antwort 202 zurückzugeben, im Hintergrund irgendwo anders zu arbeiten und dem Benutzer dann eine Form der Benachrichtigung zu geben?

Ja. Das ist genau das, was 202 Accepted für

entwickelt wurde Die 202 Antwort ist absichtlich unverbindlich. Ihr Zweck besteht darin, einem Server zu ermöglichen, eine Anforderung für einen anderen Prozess (möglicherweise einen stapelorientierten Prozess, der nur einmal pro Tag ausgeführt wird) zu akzeptieren, ohne dass die Verbindung des Benutzeragenten mit dem Server bestehen bleibt, bis der Prozess abgeschlossen ist. Die Repräsentation, die mit dieser Antwort gesendet wird, sollte den aktuellen Status der Anfrage beschreiben und auf einen Statusmonitor zeigen (oder einbetten), der dem Benutzer eine Schätzung liefern kann, wann die Anfrage erfüllt wird.

Es kann helfen, denke ich, daran zu erinnern, dass wir über Ihre Integrationsdomäne sprechen; Der Kunde spricht nicht mit Ihrer App. Stattdessen sprechen Sie mit Ihrer API, die vorgibt, eine Website zu sein, in die der Client integriert werden kann. Ihr Client sendet die Anfrage an die API und die API antwortet mit einer akzeptierten Nachricht, die von einer Reihe von Links begleitet wird, die dem Client helfen, mit dem Protokoll fortzufahren und schließlich sein Ziel zu erreichen.

Verwandte Themen