Szukam dobrych narzędzi do obsługi pomocy technicznej zmieniającej wersję modelu używanego w usługach REST. Moje wymarzone narzędzia byłoby zrobić coś takiego:Dobre narzędzia do wersjonowania modeli REST dla Javy
- My POJO + w wersji 1.0 config/transformatora => usługa z 1,0 mojego modelu
- Moje pojo + wersja 1.1 config/transformator => usługa z 1,1 mojego Model
W moim konkretnym przypadku nie muszę robić odwrotną transformację jak moja usługa REST zapewni tylko wyszukiwanie danych i nigdy nie przechowywać rzeczy, ale nie mam nic przeciwko użyciu narzędzia robi zarówno :-)
Rozwiązaniem, które rozważam jest dodanie c adnotacje ustom w mojej pojo (wersja + nazwa) i stworzyć generator kodu, który wygeneruje JSON/XML na podstawie mojego pojo na podstawie numeru wersji. Chociaż tutaj czuję się, jakbym ponownie wynalazł koło.
Edit: Oto przykład zmian, które mogą być wykonane z wersji 1 do wersji 1.1:
Wersja 1: Osoba Imię lastname
Wersja 1.1 Osoba Imię lastname data urodzenia
Jeśli uzyskasz dostęp do interfejsu API w wersji 1.0, nie otrzymasz atrybutu daty urodzenia - jest to dostępne tylko w wersji 1.1. Chcę obsługi narzędzi do udostępniania tych usług, gdzie mogę skonfigurować, że moje moje pojo (które jest obecnie jak wersja 1.1), chcę udostępnić wersję 1.0, która nie wyświetla tych wartości.
Inne zmiany prawne w modelu mogą polegać na usunięciu atrybutu lub zmianie nazwy atrybutu (lub nawet zmianie nazwy podmiotu).
Edytuj 2: Joel wspomniał w komentarzu, że do dyskusji na temat wersjonowania API powinieneś przeczytać https://stackoverflow.com/posts/9789756/.
Łatwe wyjście z wersjonowania nie oznacza cofania zmian w API, ale zmienia biznes, więc nie zawsze jest to możliwe. Interesuje mnie jak uprościć te zmiany, dlatego moje pytanie.
Edytuj 3: Szukałem narzędzi, które mogłyby pomóc w procesie, ale wciąż nic, co łączy to w dobry sposób z resztą. Oto linki, które znalazłem do tej pory:
- http://wiki.pmease.com/display/xmt/What%27s+XMT (Wygląda jak biblioteki za pomoc POJOs serializacji XML z wersjami)
Doskonała odpowiedź. Biblioteka Gson wygląda jak dobry mecz. – Knubo
Niezły! Nie wiedziałem, że gson ma wsparcie dla wersji. Zasługujesz na nagrodę. – digitaljoel
Na pewno wyrzucę nagrodę, gdy skończy się czas i nikt nie przebije jego odpowiedzi :-) – Knubo