HTTP definiuje kod 202 statusu dokładnie scenariusza:
202 Akceptowane
Żądanie zostało przyjęte do realizacji, ale ich przetwarzanie nie zostało zakończone. Żądanie może, ale nie musi, zostać wykorzystane, ponieważ może być zabronione, gdy przetwarzanie faktycznie ma miejsce. Nie ma możliwości ponownego wysłania kodu statusu z operacji asynchronicznej, takiej jak ta.
Odpowiedź 202 jest celowo niezobowiązująca. Jego celem jest umożliwienie serwerowi zaakceptowania żądania dla innego procesu (być może procesu zorientowanego na partie, który jest uruchamiany tylko raz dziennie) bez konieczności utrzymywania połączenia klienta użytkownika z serwerem do czasu zakończenia procesu. Jednostka zwrócona z tą odpowiedzią POWINNA zawierać wskazanie bieżącego statusu żądania i wskaźnik do monitora statusu lub szacunkową ocenę, kiedy użytkownik może oczekiwać, że żądanie zostanie spełnione.
Źródło: HTTP 1.1 Status Code Definition
ta jest podobna do 201 utworzone, oprócz tego, że jesteś wskazując, że wniosek nie został zakończony, a jednostka nie została jeszcze utworzona. Twoja odpowiedź zawiera URL do zasobu reprezentującego "żądanie zamówienia", dzięki czemu klienci mogą sprawdzić stan zamówienia za pomocą tego adresu URL.
Aby odpowiedzieć na to pytanie bardziej bezpośrednio: Nie ma sposobu na „test”, czy wniosek uda przed wprowadzeniem go, ponieważ prosisz dla jasnowidzenia.
Nie można przewidzieć zakresu problemów technicznych, które mogą wystąpić podczas próby złożenia wniosku w przyszłości. Sieć może być niedostępna, serwer może nie mieć dostępu do swojej bazy danych lub systemów zewnętrznych, od których zależy funkcjonowanie, może nastąpić odcięcie zasilania i serwer jest w trybie offline, bezpańskie neutrino może wejść w twoją pamięć i uderzyć w 0 do 1 powodującego katastrofalny błąd jądra.
Aby skorzystać z usługi zdalnej, należy uwzględnić ewentualne awarie jakichkolwiek żądań w oderwaniu od innych procesów.
Dla twojego konkretnego problemu, jeśli usługi nie mają żadnego bezpieczeństwa transakcyjnego, nie możesz tam upiec i musisz sobie z tym poradzić w bardziej realistyczny sposób. Kilka opcji off górze mojej głowie:
Znajdź firmę T-Shirt daje „test” mechanizm, dzięki czemu można zobaczyć, czy będą przetwarzać bez żadnej określonej kolejności faktycznie umieszczenie go. Może się zdarzyć, że złożenie zamówienia u nich jest operacją dwufazową, w której zlecenie budowane jest w pierwszej fazie (w którym to momencie zatwierdzają jego utworzenie), a następnie następnie zleca przetworzenie zamówienia (po dokonaniu płatności z powodzeniem).
Najpierw zapłać kartą kredytową i przenieś zamówienie do stanu "płatny". Następnie spróbuj zrealizować zamówienie z usługą T-Shirt jako proces asynchroniczny. Jeśli spełnienie się nie powiedzie i możesz zidentyfikować, że klient próbował uzyskać wydruk, którego firma nie jest przygotowana do produkcji, będziesz musiał skontaktować się z nim w celu zmiany zamówienia lub zwrotu pieniędzy.
Większość organizacji przyjmie drugie podejście ze względu na swoją prostotę techniczną i mniejsze ryzyko dla firmy. Ma także tę zaletę, że jest w stanie poradzić sobie z niedostępnością usługi T-Shirt; proces asynchroniczny czeka po prostu, aż usługa będzie dostępna i zakończy zamówienie w tym czasie.
Inne podejście: 'POST' z' persist = false' lub 'efemeryczna = true'. (Wydaje się nieco odurzający, ale nie wymaga kolejnej zmiany statusu - gdy naprawdę chcesz, aby 'POST' się wydarzył, wydaj to ponownie.) – mjs