Wpis z mikrobloga

#programowanie #webdev #rest

Mam dwa pytania odnośnie webserwisów/API.

1. Jak w zespole tworzy się dwie aplikacje np. w #java, które komunikują się przez REST (coś w stylu mikroserwisów) i w obu wykorzystuje się takie same klasy, to jak w praktyce to się rozwiązuje? Kopiuje się ręcznie klasy z jednego projektu do drugiego? A jak są zmiany, to sprawdza się GIT-a i znowu się kopiuje? Trochę słabe rozwiązanie.
Jak były WebServices (te z SOAP), to było coś takiego jak WSDL i klasy same się generowały. Przy REST czegoś takiego nie ma, więc jak to rozwiązać?

2. Czego wam brakuje lub co przeszkadza przy w tworzeniu/konsumowaniu REST?

Mnie np. przerażają wielkie JSON-y przez które muszę się przekopywać. Używam niby jsoneditoronline.org, ale czasem to za mało.

Mam zamiar stworzyć jakieś narzędzie, które będzie w tym pomagało. Np. łatwiej będzie wyszukiwać (może dodam jakieś algorytmy sztucznej inteligencji, żeby wyszukiwało daty czy jakieś inne powtarzalne elementy), po wyszukaniu elementu będziemy mieli do niego ścieżkę (a nie ręcznie pisać kropki i tablice, żeby się do niego odwołać), będzie generowało zalążek klasy w Javie na podstawie JSON-a. Co jeszcze mogłoby zawierać (nawet coś z pozoru niemożliwego)?
  • 10
i w obu wykorzystuje się takie same klasy


@mk321: dla mnie to brzmi jak ten sam projekt, jakiś dokładniejszy przykład? sama metoda pobierająca obiekty to nie jest dużo do skopiowania jeżeli tylko w tym są podobne
@mk321: Tworzysz obiekty transportowe (te które przesylasz po REST) i wspolną logikę jako oddzielny projekt, który będzie ładowany do jar'a jako biblioteka. Mówisz aplikacji A aby korzystała z tej biblioteki, tak samo aplikacji B. Oczywiście cały proces automatyzujesz aby przy kompilacji A lub B najpierw skompilowała się biblioteka.
1. Maven i wspólne zależności.


@IrvinTalvanen: No tak, że na to nie wpadłem. Cały czas myślę, że Maven to tylko ten globalny do pobierania bibliotek. A przecież można lokalne biblioteki mieć.

JSON może i lepszy niż XML. Ale dzięki WSDL mogłeś wygenerować sobie klasę, a tutaj chyba nie.

@wczoraj: chodziło mi głównie o pola w klasach. Jak mam dwa różne projekty, ale komunikują się ze sobą. I okazuje się np.
Ale dzięki WSDL mogłeś wygenerować sobie klasę, a tutaj chyba nie.


@mk321: hmm, tutaj nie musisz generować. Masz przecież interfejs, który implementujesz na serwerze i możesz go wykorzystać w klientach (jeśli będzie wrzucony jako zależność).