Standart yok gibi görünüyor.
StackOverflow cevap 410 GONE doğru eğilir, ama bence 301 KALICI OLARAK HAREKET daha uygun.
Doğru seçimi yapmak için özel durumunuza bakmalıyız. Amacınız, herhangi bir işlem yapmadan API v1'e yapılan tüm çağrıların başarısız olmasını sağlamaksa, 410 GONE bunun için çalışır. İstemciyi API'nizin çağrılarının başarılı olabileceği daha yeni bir sürümüne yönlendirmek gibi bir süreklilik istiyorsanız, 3XX çalışır, ancak hangisini seçersiniz? API v1'i kapatmaya çalışıyorsanız, 301 KALICI OLARAK HAREKET EDİLDİ 303'ten daha iyi olduğunu belirtmeye yardımcı olur, çünkü 301, gelecekteki tüm isteklerin yeni URL'ye yapılması gerektiğini gösterirken, 303 bu durumun olup olmadığını belirtmez kalıcı.
API'yi, her sürüm geriye dönük olarak uyumlu kalacak şekilde tasarlamanızı öneririm, böylece 301 KALICI OLARAK HAREKET EDİLDİ, yeni API sürümleri için yeni uç noktalar eklediğinizde API'nızı şeffaf ve güncel tutar. Bence zaten yapmaya çalıştığın şey bu.
HTTP Durum Kodları
HTTP durum kodu 302 başlangıçta çok genişti ve bu nedenle yanlış bir şekilde uygulandı / kullanıldı, bu nedenle 302 ve 307'nin ikili kullanım durumunu ayırt etmek için 303 ve 307 yapıldı. Bazı API'lar başka amaçlar için 303 kullanır.
301 KALICI OLARAK HAREKET EDİLDİ - 301 (Kalıcı Olarak Taşındı) durum kodu, hedef kaynağa yeni bir kalıcı URI'nin atandığını ve bu kaynağa gelecekteki tüm referansların ekteki URI'lerden birini kullanması gerektiğini gösterir.
302 FOUND - 302 (Bulunan) durum kodu, hedef kaynağın geçici olarak farklı bir URI altında bulunduğunu gösterir. Yönlendirme zaman zaman değiştirilebileceğinden, istemci gelecekteki istekler için etkin istek URI'sını kullanmaya devam etmelidir.
303 DİĞERİ GÖR - Bir GET isteğine verilen 303 yanıtı, kaynak sunucunun sunucu tarafından HTTP üzerinden aktarılabilecek hedef kaynağın bir temsiline sahip olmadığını gösterir. Bununla birlikte, Konum alanı değeri, hedef kaynağın açıklayıcı olduğu bir kaynağa işaret eder, böylece diğer kaynak üzerinde bir geri alma isteği yapmak, alıcılar için orijinal hedef kaynağı temsil ettiğini ima etmeden faydalı bir temsil ile sonuçlanabilir.
410 GONE - 410 (Gitti) durum kodu, hedef kaynağa erişimin artık kaynak sunucuda bulunmadığını ve bu koşulun kalıcı olacağını gösterir. Kaynak sunucu durumun kalıcı olup olmadığını bilmiyorsa veya belirleyecek bir imkan yoksa, durum kodu 404 (Bulunamadı) kullanılmalıdır.
Mevcut API'lar bunu nasıl ele alır?
Belki Google'ın Youtube API'sından bir sayfa alabilirsiniz :
Bir API isteği başarısız olduğunda, YouTube, hatayı genel olarak tanımlayan bir HTTP 4xx veya 5xx yanıt kodunun yanı sıra hataya neden olan hatalar hakkında daha spesifik bilgiler sağlayan bir XML yanıtı döndürür. Her hata için, XML yanıtı bir etki alanı öğesi, kod öğesi ve muhtemelen bir konum öğesi içerir.
Daha fazla okuma: