Generator OpenAPI
Specyfikacja OpenAPI 3.0.3 w YAML lub JSON z listy endpointów, gotowa do Swagger Editor i Postmana
-
1Wprowadź dane
Wpisz treść, wklej tekst lub załaduj plik z dysku. -
2Kliknij przycisk
Narzędzie natychmiast przetworzy Twoje dane w przeglądarce. -
3Pobierz wynik
Skopiuj gotowy tekst lub zapisz plik na urządzeniu.
return "Wynik gotowy w 0.1s";
}
Metody: GET, POST, PUT, PATCH, DELETE, HEAD, OPTIONS. Zamiast średnika można użyć |. Fragment w klamrach, np. /users/{id}, staje się parametrem ścieżki.
Dopisze GET i POST /zasób oraz GET, PUT i DELETE /zasób/{id}; istniejących wierszy nie powtórzy.
Dane zostały zmienione. Kliknij „Generuj OpenAPI”, aby odświeżyć plik.
Ścieżki
Operacje
Linie
Rozmiar
openapi.yaml
| Metoda | Ścieżka | Opis (summary) | Parametry ścieżki |
|---|---|---|---|
| GET | /users | Lista użytkowników | — |
| POST | /users | Utworzenie użytkownika | — |
| GET | /users/{id} | Szczegóły użytkownika | id |
Ściąga: metody HTTP w specyfikacji OpenAPI
| Metoda | Typowe użycie | Typowe kody | Bezpieczna | Idempotentna |
|---|---|---|---|---|
| GET | Pobranie zasobu lub listy | 200, 404 | tak | tak |
| POST | Utworzenie zasobu lub wykonanie akcji | 201 (lub 200), 400 | nie | nie |
| PUT | Zastąpienie całego zasobu | 200 lub 204, 404 | nie | tak |
| PATCH | Zmiana części zasobu | 200 lub 204, 404 | nie | nie |
| DELETE | Usunięcie zasobu | 204 lub 200, 404 | nie | tak |
| HEAD | Jak GET, ale bez treści odpowiedzi | 200, 404 | tak | tak |
| OPTIONS | Lista dozwolonych metod (np. CORS) | 200 lub 204 | tak | tak |
Format wiersza z endpointem
Każdy endpoint to osobny wiersz: METODA; /ścieżka; opis. Zamiast średnika można użyć pionowej kreski. Wielkość liter metody nie ma znaczenia. Opis trafia do pola summary; bez opisu generator wpisze np. „Get /users”. Każdy fragment w klamrach, np. {id}, staje się parametrem ścieżki (in: path, required: true, typ string).
Co zawiera wygenerowany plik
Nagłówek openapi: 3.0.3, sekcję info (tytuł, wersja, opis), adres serwera, globalne zabezpieczenie (Bearer JWT albo klucz w nagłówku X-API-Key) i ścieżki. Każda operacja dostaje odpowiedzi 200 i 400, a POST dodatkowo 201. Dodatki dopisują operationId, tagi, szkielet JSON oraz odpowiedzi 401 i 404.
Gdzie użyć specyfikacji
Wklej plik do Swagger Editor, żeby zobaczyć dokumentację i błędy walidacji. Postman importuje OpenAPI jako kolekcję żądań, a openapi-generator tworzy z niego klienta albo szkielet serwera. Schemat type: object to punkt wyjścia: dopisz properties i required dla własnych danych.
Typowe pułapki
Każdy parametr ze ścieżki musi być opisany w parameters; generator dodaje wszystkie, także przy kilku parametrach. Ta sama metoda nie może wystąpić dwa razy na jednej ścieżce. Wersja 1.0 bez cudzysłowu byłaby w YAML liczbą, a yes/no w parserach YAML 1.1 wartością logiczną, więc takie wartości trafiają do pliku w cudzysłowie.
Oceń to narzędzie:
Powiązane narzędzia
Inne narzędzia, które mogą Ci się przydaćGenerator OpenAPI: specyfikacja API w YAML lub JSON
Generator OpenAPI zamienia listę endpointów w plik specyfikacji OpenAPI 3.0.3, który można pobrać jako openapi.yaml albo openapi.json. OpenAPI to standard opisu API REST: na jego podstawie powstaje dokumentacja (Swagger UI, Swagger Editor), kolekcje w Postmanie, klienci SDK i testy kontraktowe.
Struktura specyfikacji
| Sekcja | Opis |
|---|---|
| openapi | wersja standardu, tu zawsze 3.0.3 |
| info | tytuł, wersja, opis |
| servers | adres bazowy API |
| security | sposób autoryzacji stosowany do wszystkich operacji |
| paths | endpointy, ich parametry i odpowiedzi |
| components | definicja schematu zabezpieczeń (securitySchemes) |
Format endpointów
Każdy endpoint to osobny wiersz METODA; ścieżka; opis, np. GET; /users; Lista użytkowników. Zamiast średnika można użyć pionowej kreski |. Obsługiwane metody to GET, POST, PUT, PATCH, DELETE, HEAD i OPTIONS, a wielkość liter nie ma znaczenia. Ścieżka musi zaczynać się od /, a każdy fragment w klamrach, np. {id}, staje się parametrem path. Jeden plik mieści do 100 endpointów.
Nie musisz wpisywać wszystkiego ręcznie. Gotowe zestawy (CRUD użytkowników, sklep, blog) wczytują przykładowe API, a pole „Dopisz komplet CRUD” dodaje dla podanego zasobu pięć endpointów: GET i POST /zasób oraz GET, PUT i DELETE /zasób/{id}, z pominięciem tych, które już są na liście.
Autoryzacja
- Bearer – token JWT w nagłówku Authorization (schemat
bearerAuth). - Klucz API – klucz w nagłówku
X-API-Key(schematapiKeyAuth). Inną nazwę nagłówka trzeba poprawić w pliku ręcznie. - Brak – plik nie zawiera sekcji security ani components.
Jak generator zamienia listę endpointów na specyfikację OpenAPI
Generator czyta tekst wiersz po wierszu i dzieli każdy na trzy części: metodę, ścieżkę i opis. Metoda jest sprawdzana względem listy obsługiwanych, a ścieżka trafia jako klucz do sekcji paths, z metodą jako zagnieżdżonym kluczem operacji. Opis staje się polem summary; jeśli go brak, generator wpisze np. „Get /users”. Błędny wiersz (nieznana metoda, ścieżka bez ukośnika, niedomknięta klamra, powtórzony endpoint) zatrzymuje generowanie i komunikat wskazuje jego numer.
Parametry path wykrywane są przez nawiasy klamrowe. Dla segmentu {id} generator tworzy wpis parameters z polami name: id, in: path, required: true i typem string. Tak samo działa każda inna nazwa w klamrach, także kilka parametrów w jednej ścieżce. Każda operacja dostaje odpowiedzi 200 i 400, a POST dodatkowo 201.
Cztery dodatki są opcjonalne. operationId powstaje z metody i ścieżki (GET /users/{id} → getUsersById) i jest unikalne w pliku, co pozwala generatorom SDK tworzyć czytelne nazwy funkcji. Tagi grupują operacje według pierwszego segmentu ścieżki, z pominięciem „api” i wersji typu v1. Szkielet JSON dodaje requestBody dla POST, PUT i PATCH oraz content application/json w odpowiedziach. Ostatnia opcja dopisuje 401 (gdy jest autoryzacja) i 404 (dla ścieżek z parametrem). W YAML wcięcie ma zawsze 2 spacje, a wartości, które parser odczytałby jako liczbę lub wartość logiczną (np. wersja 1.0, yes), trafiają do pliku w cudzysłowie.
Przykład krok po kroku: API sklepu z trzema endpointami
- W polu tytuł wpisujesz Sklep API, w polu wersja 1.0.0, a jako serwer podajesz https://api.sklep.pl.
- Wybierasz autoryzację Bearer – generator doda schemat http/bearer z formatem JWT.
- W polu endpointów wklejasz trzy wiersze:
GET; /products; Lista produktów,GET; /products/{id}; Szczegóły produktu,POST; /orders; Nowe zamówienie. - Generator tworzy trzy ścieżki i trzy operacje. Kafelki nad wynikiem pokażą: Ścieżki 3, Operacje 3.
- Ze ścieżki /products/{id} powstaje jeden parametr path o nazwie id, required: true, typ string. Pozostałe ścieżki nie mają parametrów.
- Obie operacje GET mają odpowiedzi 200 i 400, a POST /orders – 200, 201 i 400. Po zaznaczeniu operationId nazwy to getProducts, getProductsById i postOrders; po zaznaczeniu odpowiedzi 401 i 404 każda operacja dostanie 401, a 404 tylko GET /products/{id}.
Gdy dwie operacje mają tę samą ścieżkę (np. GET i PUT /products/{id}), liczba ścieżek będzie mniejsza od liczby operacji.
Mapowanie pól formularza na elementy specyfikacji
| Element wejścia | Co trafia do specyfikacji | Uwagi |
|---|---|---|
| Tytuł | info.title | Wymagany, do 120 znaków. |
| Wersja | info.version | Wymagana, wartość tekstowa, np. 1.0.0. |
| Opis | info.description | Opcjonalny, do 1000 znaków. |
| Serwer | servers[0].url | Jeden adres zaczynający się od http://, https:// lub /; puste pole pomija sekcję servers. |
| Bearer | components.securitySchemes oraz security | type: http, scheme: bearer, bearerFormat: JWT. |
| Klucz API | components.securitySchemes oraz security | type: apiKey, in: header, name: X-API-Key. |
| Format pliku | YAML lub JSON | Zawartość taka sama, różni się zapis i nazwa pliku. |
| Endpoint: metoda | paths.[ścieżka].[metoda] | Zapisywana małymi literami, jak wymaga standard. |
| Endpoint: {parametr} | parameters z in: path | Każdy nawias klamrowy tworzy osobny parametr wymagany. |
Praktyczne wskazówki przy generowaniu specyfikacji
- Jedna metoda na wiersz. Zapis w rodzaju „GET, POST” generator odrzuci jako nieznaną metodę, więc dla endpointu z kilkoma metodami wpisz kilka wierszy z tą samą ścieżką.
- Generator bierze pod uwagę tylko dwa pierwsze separatory. Średnik lub kreska w dalszej części wiersza zostają w opisie jako zwykły tekst.
- Parametry w klamrach pisz literami łacińskimi, cyframi i podkreślnikiem: {id}, {slug}, {orderId}. Każdy dostaje typ string; po wygenerowaniu możesz zmienić go na integer lub dodać format, np. uuid.
- Wygenerowany plik to szkielet. Schemat type: object ze szkieletu JSON uzupełnij o properties i required, najlepiej w components.schemas, aby Swagger UI pokazywał modele, a generator klientów tworzył typy.
- Przy ręcznej edycji YAML pamiętaj, że nie toleruje on tabulatorów. Używaj spacji i spójnego wcięcia, inaczej walidator zgłosi błąd.
Czego narzędzie nie uwzględnia
- Modeli danych. Generator nie tworzy components.schemas ani przykładów ciał żądań; szkielet JSON wstawia tylko ogólny schemat type: object.
- Parametrów innych niż path. Parametry query, nagłówkowe (poza autoryzacją) i cookie trzeba dopisać ręcznie, np. dla filtrowania i paginacji.
- Wielu środowisk i mieszanej autoryzacji. Formularz przewiduje jeden adres serwera i jeden schemat security dla całego API.
- Zgodności z działającym API. Generator nie sprawdza, czy endpointy odpowiadają pod podanym adresem: specyfikacja opisuje to, co wpiszesz.
Najczęstsze pytania
Jak wygenerować plik openapi.yaml?
Wpisz tytuł, wersję i adres serwera, wybierz autoryzację, podaj endpointy w osobnych wierszach i kliknij „Generuj OpenAPI”. Przycisk „Pobierz openapi.yaml” zapisze plik; dla formatu JSON będzie to openapi.json.
Czym OpenAPI różni się od Swaggera?
Swagger to dawna nazwa specyfikacji, używana do wersji 2.0. OpenAPI 3.x to jej następca, a Swagger UI i Swagger Editor to narzędzia do wyświetlania i edycji plików OpenAPI.
Czy generator obsługuje OpenAPI 3.1?
Nie, plik ma nagłówek openapi: 3.0.3. Po ręcznej zmianie na 3.1 trzeba sprawdzić m.in. pola nullable, które w 3.1 zapisuje się inaczej.
Jak dodać parametry query do specyfikacji?
Po wygenerowaniu pliku dopisz przy wybranej operacji wpis w parameters z in: query oraz polami name, required i schema. Bez schema walidator zgłosi błąd.
Czy mogę wygenerować specyfikację z istniejącego kodu?
Nie, to narzędzie działa w drugą stronę: z opisanych endpointów tworzy plik. Specyfikację z kodu generują adnotacje we frameworku lub narzędzia analizujące kod.
Co zrobić, gdy API ma więcej niż 100 endpointów?
Generator przyjmuje do 100 wierszy naraz. Większe API podziel na kilka plików, np. według zasobów, i połącz je ręcznie w sekcji paths.