Kontrola współbieżności
Uwaga
Interfejsy API portalu Cloud Partner Portal są zintegrowane z usługą i będą nadal działać w Centrum partnerskim. Przejście wprowadza niewielkie zmiany. Przejrzyj zmiany wymienione w dokumentacji interfejsu API portalu Cloud Partner Portal, aby upewnić się, że kod będzie nadal działać po przejściu do Centrum partnerskiego. Interfejsy API CPP powinny być używane tylko dla istniejących produktów, które zostały już zintegrowane przed przejściem do Centrum partnerskiego; nowe produkty powinny używać interfejsów API przesyłania w Centrum partnerskim.
Każde wywołanie interfejsów API publikowania portalu Cloud Partner Portal musi jawnie określić, która strategia kontroli współbieżności ma być używana. Nie można podać nagłówka If-Match spowoduje wystąpienie błędu HTTP 400. Oferujemy dwie strategie kontroli współbieżności.
- Optymistyczne — klient wykonujący aktualizację sprawdza, czy dane uległy zmianie od czasu ostatniego odczytu danych.
- Ostatnia wygrana — klient bezpośrednio aktualizuje dane, niezależnie od tego, czy inna aplikacja zmodyfikowała je od czasu ostatniego odczytu.
Optymistyczny przepływ pracy współbieżności
Zalecamy użycie optymistycznej strategii współbieżności z następującym przepływem pracy, aby zagwarantować, że żadne nieoczekiwane zmiany nie zostaną wprowadzone w zasobach.
- Pobieranie jednostki przy użyciu interfejsów API. Odpowiedź zawiera wartość ETag, która identyfikuje obecnie przechowywaną wersję jednostki (w momencie odpowiedzi).
- W momencie aktualizacji dołącz tę samą wartość elementu ETag do obowiązkowego nagłówka żądania If-Match .
- Interfejs API porównuje wartość ETag odebraną w żądaniu z bieżącą wartością ETag jednostki w transakcji niepodzielnej.
- Jeśli wartości elementu ETag są inne, interfejs API zwraca
412 Precondition Failed
odpowiedź HTTP. Ten błąd wskazuje, że inny proces zaktualizował jednostkę od czasu ostatniego pobrania przez klienta lub że wartość elementu ETag określona w żądaniu jest niepoprawna. - Jeśli wartości elementu ETag są takie same lub nagłówek If-Match zawiera symbol wieloznaczny gwiazdki (
*
), interfejs API wykonuje żądaną operację. Operacja interfejsu API aktualizuje również przechowywaną wartość elementu ETag jednostki.
- Jeśli wartości elementu ETag są inne, interfejs API zwraca
Uwaga
Określenie symbolu wieloznacznego (*) w nagłówku If-Match powoduje wyświetlenie interfejsu API przy użyciu strategii współbieżności Last-one-wins. W takim przypadku porównanie elementu ETag nie występuje i zasób jest aktualizowany bez żadnych kontroli.