środa, maja 27, 2020

Wersjonowanie Rest API - pytanie filozoficzne

OK, w przypadku Rest API (choć de facto ogólnie API webowego ;-)) robi się wersjonowanie przez dodawanie albo w URLu numer wersji, albo w nagłówku.

No i wiadomo jak zmienia się zawartość endpointa i dochodzą nowe konieczne rzeczy to robi się update.
Ale co wtedy gdy zmiana jest kompatybilna w dół?

Nie wiem, kiedyś zwracaliśmy listę obiektów z takimi polami, a teraz te obiekty mają jeszcze jedno nowe pole?

Albo przyjmowaliśmy obiekt i pojawiło się w mim nowe pole, które nie jest required?

Czy numer API się powinien dla tego endpointa zmienić czy nie? ;-)

Wg mnie nie, bo to jest tak, że API jest nadal takie samo, stary kod nadal będzie działał.

Jak w przypadku kodu źródłowego, przyjdzie nowa wersja biblioteki i jest sobie kod z niej korzystający i API się nie zmieniło (choć może zmieniły się w sposób "niepsujacy" obiekty) to kod powinien nadal działać.
Jak zmieniamy wersję Java'y i dodano do Map nowe metody, ale zachowanie starych jest takie samo to jest OK. 
Wychodzi niemal jakby jakaś wariacja na temat zasady podstawienia Liskov ;-)



Podobne postybeta
Chrome2Chrome, mam dylemat
Delete Driven Development ;-)
WS-Security złe, SOAP zły, WebServices złe. REST dobry
Automagiczne dodawanie tagów do Pocket :-)
Google App Inventor for Android - co to będzie? ;-)

Brak komentarzy:

Publikowanie komentarza