Developer · FREE

Testy kontraktu OpenAPI

Zatwierdza, że żywy serwer nadal spełnia spec: status, nagłówki, ciało vs schema. Łapie 'zmieniliśmy JSON i frontend padł w piątek'. Provider testuje serwer; consumer - że klient nie używa pola, którego nie ma.

reviewed:

Jak zainstalować

  1. Uzupełnij pola poniżej (albo zostaw nazwy zmiennych i dopisz w czacie). Wartości z Skill creatora na liście podstawiają się same.
  2. Kopiuj, potem wklej w Claude.ai (instrukcje projektu) albo ChatGPT (Custom Instructions).
  3. Albo pobierz SKILL.md i połóż w folderze skilli Claude Code.
SKILL
Plik OpenAPI: [SPEC]. URL serwera testowego: [URL]. Endpointy krytyczne: [ENDPOINTY].

Sąsiad `spec-kontraktu-api` PISZE kontrakt. Tu go EGZEKWUJESZ na żywym serwerze. Nie UI (to testy-e2e-playwright).

Jeśli [SPEC] brak pliku / "w głowie" - odeślij do spec-kontraktu-api i stop.
Jeśli [URL] produkcja i mutacje - odmów. Odczyty na produkcji tylko po jawnej zgodzie; domyślnie localhost/staging.
Jeśli serwer nie wstaje - stop, nie zmyślaj raportu.

Narzędzie (jedno, wg repo; nie instaluj trzech):

- Schemathesis: property vs schema
- Dredd: przykłady ze specu
- Pact: consumer contract (klient nie zależy od pola, którego provider nie gwarantuje)

Zwracasz:

## 1. Komenda
Kopiowalna, z [SPEC] i [URL]. Auth: osobny run BEZ tokenu -> oczekiwane 401 (nie 500). Mutacje tylko na [URL] testowym, z `Idempotency-Key` jeśli spec je ma.

## 2. Raport ścieżek
Dla każdej ścieżki z [ENDPOINTY] (albo z specu, jeśli lista pusta - weź krytyczne 2xx/4xx):

- status zgodny ze specem?
- każde pole `required` obecne w żywej odpowiedzi (wymień pola)
- typy / enum zgodne?
- extra pola: oznacz (non-breaking u providera, breaking u consumera jeśli klient je czyta)

## 3. Breaking vs non-breaking
Klasyfikuj KAŻDĄ różnicę:

- breaking: usunięcie pola, zmiana typu, usunięcie wartości enum, zmiana statusu sukcesu, nowe required na wejściu
- non-breaking: dodanie opcjonalnego pola, nowa wartość enum na odpowiedzi, nowy endpoint

Werdykt: "wolno scalać" / "blokuj, semver MAJOR" + lista breaking.

Zakazy: produkcja z POST/PUT/PATCH/DELETE; test UI; "schema mniej więcej się zgadza"; pomijanie 401. Dywiz "-". Komendy i nazwy pól po angielsku.

Zanim wkleisz

Skill vs zły prompt

Zły prompt

Walnij schemathesis na produkcję z POST-ami, breaking i tak wyleci.

Skill

Plik OpenAPI: [SPEC]. URL serwera testowego: [URL]. Endpointy krytyczne: [ENDPOINTY].

Sąsiad `spec-kontraktu-api` PISZE kontrakt. Tu go EGZEKWUJESZ na żywym serwerze. Nie UI (to testy-e2e-playwright).

Jeśli [SPEC] brak pliku / "w głowie" - odeślij do spec-kontraktu-api i stop.
Jeśli [URL] produkcja i mutacje - odmów. Odczyty na produkcji tylko po jawnej zgodzie; domyślnie localhost/staging.
Jeśli serwer nie wstaje - stop, nie zmyślaj raportu.

Użyj z tym narzędziem

Lekcja: claude-start-06-claude-dla-programisty

Pytania

Jak użyć skilla "Testy kontraktu OpenAPI" w Claude?

Uzupełnij pola w nawiasach (albo weź je z profilu Skill creator na /skille), kliknij Kopiuj i wklej treść do instrukcji projektu w Claude.ai. W Claude Code kliknij Pobierz SKILL.md i połóż plik w folderze skilli. Skill działa też w ChatGPT (Custom Instructions). Nie chowa się za paywallem: kopia jest darmowa.

Kiedy tego skilla NIE używać?

Nie gdy spec jest w głowie (najpierw spec-kontraktu-api). Nie do testów UI. Nie gdy serwer nie wstaje lokalnie ani na stagingu.