Nie zmieniłbym niczego w kodzie statusu, aby był kompatybilny wstecz. W odpowiedzi dodałbym nagłówek „Ostrzeżenie”:
Warning: 299 - "Deprecated API"
Możesz także określić „-” z „Agentem”, który emituje ostrzeżenie i być bardziej wyraźnym w tekście ostrzeżenia:
Warning: 299 api.blazingFrog.com "Deprecated API: use betterapi.blazingFrog.com instead. Old API maintained until 2015-06-02"
Tutaj określono nagłówek ostrzeżenia: https://tools.ietf.org/html/rfc7234#section-5.5 . Kod ostrzegawczy 299 jest typowy, „Przestarzały” nie jest standardem.
Musisz powiedzieć swoim klientom API, aby rejestrowali ostrzeżenia HTTP i monitorowali je.
Do tej pory nigdy z niego nie korzystałem, ale kiedy moja firma będzie bardziej dojrzała w Rest API, zintegruję ją.
Edycja (2019-04-25): Jak wspomniał @Harry Wood, nagłówek Warning znajduje się w rozdziale dotyczącym buforowania w dokumentacji. Jednak RFC jest jasneWarnings can be used for other purposes, both cache-related and otherwise.
Jeśli wolisz alternatywną metodę, ta wersja robocza https://tools.ietf.org/html/draft-dalal-deprecation-header-00 sugeruje nowy nagłówek „Wycofanie”.
Date
wartości w tej samej wiadomości, odbiorca MUSI wykluczyć wartość-ostrzeżenia. . . przed . . . używając wiadomości. ”Date
nagłówku:"Thu, 02 Apr 2015 12:25:32 GMT"
.Warning
nagłówek wygląda dobrze jako wolne miejsce na tekst, aby opisać wycofanie. TeDeprecation
iSunset
nagłówki wymienione w innych odpowiedzi, wydaje się być pojawiające się standardowym rozwiązaniem dla Wycofanie opisujące w sposób bardziej mocniej potencjalnie odczytu maszynowego.Warning
nagłówek nie dotyczy tylko pamięci podręcznych. Pierwsze zdanie wWarning
sekcji to „Ostrzeżenia mogą być używane do innych celów, zarówno związanych z pamięcią podręczną, jak i nie tylko”.Możesz użyć 410 (Gone) .
Oto jak opisują to definicje kodów stanu W3C :
źródło
410 Gone
nie chodzi o wycofanie, chodzi o metodę, która już nie jest dostępna. Jak powiedział @BenC, lepszym sposobem jest użycie nagłówka WarningPoszedłbym / bym poszedł z 301 (przeniesiony na stałe). Kody serii 300 mają powiedzieć klientowi, że ma działanie do wykonania.
źródło
Poleciłbym
207 Multi-Status
odpowiedź, wskazującą, że jest to odpowiedź pomyślna, ale potencjalnie ma ona również drugi status wycofania.źródło
Deprecation
nagłówka (który klienci prawdopodobnie zignorują niestety), a następnie użyj tego 207 kodu, później przeniesiono 301, a ostatecznie 410 zniknął!Udoskonalam odpowiedź @ dret. Istnieją dwa odpowiednie nagłówki HTTP do wycofania:
Deprecation
( https://tools.ietf.org/html/draft-dalal-deprecation-header-00 ) iSunset
.Aby poinformować użytkowników o planowanym wycofaniu,
Deprecation
należy użyć nagłówka HTTP. Oznacza to, że punkt końcowy zostanie usunięty jakiś czas w przyszłości. Pozwala również wskazać datę ogłoszenia tego i opisać alternatywne zasoby.Aby poinformować użytkowników o planowanej dacie wygaśnięcia przestarzałego zasobu,
Sunset
oprócz nagłówka Deprecation należy użyć nagłówka. Jest to opisane w sekcji # 5 https://tools.ietf.org/html/draft-dalal-deprecation-header-00#section-5 .Projekt nr 11 https://tools.ietf.org/html/draft-wilde-sunset-header-11 z
Sunset
wyjaśnia nagłówka ten aspekt, a także w punkcie 1.4 https://tools.ietf.org/html/draft-wilde -sunset-header-11 # section-1.4 .źródło
Istnieje pole nagłówka HTTP o nazwie,
Sunset
które ma sygnalizować zbliżające się wycofanie zasobu. https://tools.ietf.org/html/draft-wilde-sunset-header jest na ostatnim etapie stania się RFC. IdealnieSunset
byłoby, gdyby twój interfejs API udokumentował, że będzie używany , aby klienci mogli go szukać i działać na jego podstawie, jeśli chcą.źródło