Mockuj i testuj
Zmockuj API, potem przetestuj prawdziwe
Front end jest gotowy, zanim powstanie serwer. Zmockuj kontrakt pierwszego dnia. Gdy serwer się pojawi, przełącz mock w walidujące proxy, a każda odpowiedź, która przez nie przechodzi, jest sprawdzana względem kontraktu.
- Zespoły klienckie nie czekająMock odpowiada przykładami z kontraktu, stubami lub wygenerowanymi danymi od dnia, w którym kontrakt powstał.
- Twoje testy stają się testami kontraktowymiPostaw
apigenie-server --proxy-toprzed prawdziwym serwerem, a ruch z Twoich testów, front endu lub testu obciążeniowego jest sprawdzany względem kontraktu. - Awarie na zawołanieScenariusze, opóźnienia, jitter i zrywane połączenia pokazują, jak klienci sobie radzą, zanim pokaże to produkcja.
Odpowiedź o złym typie, wychwycona
Mock odpowiada przykładami z kontraktu i mówi o tym w nagłówku. Ten sam serwer z --proxy-to przekazuje każde żądanie do prawdziwego serwera i sprawdza oba kierunki: tu odpowiedź z id jako ciągiem znaków tam, gdzie kontrakt wymaga liczby całkowitej, wskazana w nagłówkach i policzona w raporcie kontraktu. Z --report contract.json --fail-on errors uruchomienie zapisuje raport i kończy się kodem 5, gdy zatrzyma się po błędzie.
$ apigenie-server openapi.yaml &
Listening on http://127.0.0.1:4010/v1 (spec: openapi.yaml, 12 operations)
$ curl -si http://127.0.0.1:4010/v1/pets/42 | grep "^HTTP\|X-Apigenie"
HTTP/1.1 200 OK
X-Apigenie-Mock-Operation: getPet
X-Apigenie-Mock-Source: example:cat
$ curl -s -X POST http://127.0.0.1:4010/__apigenie/shutdown
$ apigenie-server openapi.yaml --proxy-to http://localhost:8080 &
$ curl -si http://127.0.0.1:4010/v1/pets/42 | grep X-Apigenie
X-Apigenie-Mock-Source: proxy
X-Apigenie-Mock-Operation: getPet
X-Apigenie-Mock-Violations: 1
X-Apigenie-Mock-Violations-Detail: [{"location":["response","body","/id"],"check":"response.body.incompatible","code":"type","severity":"error","message":"expected type integer, found string"}]Co obejmuje
- MockiPrzykłady, stuby, generowane dane, zasoby CRUD i skrypty.
- Walidujące proxyPokrycie oraz raporty kontraktu JSON lub JUnit dla CI.
- apigenie testPliki
.httpi generowane żądania, sprawdzane względem kontraktu. - Nagrywanie i odtwarzanieNagrana sesja, odtwarzana w testach bez prawdziwych usług.
- PanelRuch, operacje, scenariusze i raport kontraktu w przeglądarce.
- Cztery rodzaje APIOpenAPI i Swagger, AsyncAPI, gRPC i GraphQL.
Krok po kroku (przewodnik po angielsku)
Mock and contract-test an API: Serve an API from its contract before the server exists, then check the real server against the contract in CI.
Mock pierwszego dnia, proxy w dniu wydania
apigenie-server serwuje kontrakt już teraz. Później to samo polecenie z --proxy-to sprawdza prawdziwy serwer, a --report z --fail-on zamienia uruchomienie w sprawdzenie CI.