Mockowanie rest API

0

Nie wiem czy to dobry dział, ale spróbujmy.

Jest sobie projekt, w którym backend jest rozwijany równolegle z frontendem - nazwijmy to bardzo agilowo, czyli w sumie jak klient widzi to wtedy mówi, że to nie o to mu jednak chodziło.

Tak sobie pomyślałem, że fajnie byłoby na razie nie rozwijać tego backendu tylko możliwe dużo zrobić w postaci mocka restowego API i jak klient przeklika się przez front i powie "o to mi chodzi" to wtedy dopiszemy backend.

I tu pytanie co byście polecili do wystawienia takiego bardziej zaawansowanego mocka. Do tej pory do jakichś prostych zabaw z mockowaniem używałem json server(https://github.com/typicode/json-server) ale API jest bardzo sztywne i daje mało możliwości customizacji np jakieś dziwne formaty filtrowania etc.

To czego bym potrzebował to opisanie sobie struktury API np. w formacie open api i wygenerowanie na podstawie tego mocka api, który by udostępniał jakieś dane. Im bardziej to będzie realistyczne (np. działające filtrowanie etc) tym lepiej. We wspomnianym json server był to po prostu plik json z danymi, które wystawiało dane api i można było sobie dodawać/usuwać/filtrować.

Bomba fantastycznie byłoby, gdyby można było to połączyć z działającym api, tak aby sukcesywnie móc zastępować mocki działającymi endpointami - coś takiego umożliwia np. https://github.com/APIs-guru/graphql-faker ale niestety to graphql a nie rest, ale nie jest to niezbędne - najwyżej sobie jakiegoś switcha na froncie wdrożymy.

Tak więc będę wdzięczny za wszelką pomoc.

2

To czego bym potrzebował to opisanie sobie struktury API np. w formacie open api i wygenerowanie na podstawie tego mocka api, który by udostępniał jakieś dane.

import static org.mockserver.integration.ClientAndServer.startClientAndServer
import static org.mockserver.mock.OpenAPIExpectation.openAPIExpectation

//

mock = startClientAndServer(12345)
new MockServerClient("localhost", 12345)
		.upsert(openAPIExpectation("openapi.json"))

Voila.

Jakbys jednak chciał konfigirować coś bardziej szczegółowo, to możesz pomyśleć o czymś jak WireMock.

1

Jest jeszcze coś takiego: https://apiary.io/
Kiedyś było fajne, ale z tego co widzę Oracle to przejęło, więc pewnie już popsuli.

---Edit
Używałem tego do robienia "w locie" aplikacji mobilnej, czyli można było robić podobnie jak sugerujesz, robić front, przeklikać, zrobić zmiany i wtedy na tej podstawie dorobić backend. Dodatkowy plus, poza szybkością, to dostanie takiego backendu jaki był potrzebny, a nie takiego jaki byłoby wygodnie napisać.

2

Oprócz Wiremocka jeszcze jest Restito https://github.com/mkotsur/restito

1 użytkowników online, w tym zalogowanych: 0, gości: 1