To, co nazywacie pojedynczymi interfejsami API REST, może być nazywane szczególnym zestawem zasobów lub zasobów interfejsu API REST . Można również spojrzeć na to jako na funkcje interfejsu API REST . Tak jak w przypadku każdego oprogramowania, cały pakiet jest wersjonowany / aktualizowany, a nie pojedyncze funkcje lub zasoby.
Twoje pytanie miałoby sens w kontekście, w którym zasoby pakietu API REST są modułowe, a więc potencjalnie opracowane i wersjonowane osobno.
Następnie, o ile widzę, główne wady proponowanej konwencji nazewnictwa lokalizatora zasobów to:
- Dla użytkownika interfejsu API spowodowałoby to znacznie bardziej złożone lokalizatory zasobów, mniej przewidywalne, mniej zapadające w pamięć i mniej stabilne.
- Dla modułu wywoływacza (S) , to teraz więcej pracy, aby mieć do czynienia z tym wersjonowania w ich własnym lokalizator zasobów.
- Zmiany w lokalizatorach zasobów stają się znacznie częstsze, ponieważ aktualizuje się wiele modułów, więc powyższe minusy są wykładnicze ...
Podczas tworzenia interfejsu API jednym z głównych celów jest ułatwienie korzystania z ...
Możesz znaleźć lepszy sposób na wprowadzenie przełomowej zmiany, a nawet wersjonowanie interfejsu API REST za pomocą nagłówka HTTP?
Aby dowiedzieć się więcej o podejściu do nagłówków HTTP, zobacz inne odpowiedzi poniżej i: https://www.troyhunt.com/your-api-versioning-is-wrong-which-is/
vnd
część i+
składnia typu: wskazanie, że jest to podtypapplication/json
typu specyficzny dla dostawcy . Właśnie do tego są przeznaczone typy treści. Twój zasób jest dostępny w wielu formatach. Pytasz klienta, jaki format wybrać. Ponadto nie ma powodu, dla którego żądania API nie mogą używać standardowej semantyki buforowania HTTP.Kluczową sprawą jest to, że jeśli wersja każdego punktu końcowego jest tworzona osobno, musisz mieć możliwość wdrożenia każdego punktu końcowego osobno.
Interfejsy API mają zwykle jedną wersję, ponieważ wszystkie punkty końcowe znajdują się w tej samej bazie kodu, a zatem mają wspólne zależności i są wdrażane razem.
Jeśli nie aktualizujesz wersji, gdy wprowadzasz zmiany, ponieważ „Och, jestem pewien, że moja zmiana nie ma na to wpływu”, możesz mieć kłopoty, gdy popełnisz błąd.
Ponadto konieczne będzie jednoczesne wdrożenie zarówno wersji 1, jak i 2 interfejsu API. Zwykle odbywa się to poprzez wdrożenie każdej wersji na osobnym serwerze i odpowiednie kierowanie ruchu.
Jeśli nie masz jednej wersji interfejsu API, staje się to znacznie bardziej złożone.
źródło