Generator JSON Schema Online
Generuj JSON Schema z dowolnego JSON. Idealne do walidacji API i dokumentacji.
Po co tego uzywac
Interfejsy API udokumentowane i walidowane automatycznie
Draft 2020-12
Generuje schematy zgodne z najnowszym standardem IETF i OpenAPI 3.1.
Prywatnosc
JSON jest przetwarzany w Twojej przegladarce. Nigdy nie jest wysylany na zadne serwery.
Wywnioskowane typy
Automatycznie wykrywa lancuchy, liczby, wartosci logiczne, tablice i zagniezdzone obiekty.
Natychmiastowo
Schemat generowany w milisekundach. Bez rejestracji, bez oczekiwania.
Jak to działa
Trzy kroki, żadnych komplikacji
Wklej swoj JSON
Wklej dowolny poprawny obiekt JSON. Generator analizuje strukture i typy kazdego pola.
Przejrzyj wygenerowany schemat
JSON Schema pojawia sie z wywnioskowanymi typami, wymaganymi wlasciwosciami i opcjonalnymi opisami.
Skopiuj lub pobierz schemat
Uzyj schematu w swoim API, walidatorze (ajv, zod) lub dokumentacji OpenAPI. Skopiuj jednym kliknieciem.
FAQ
Masz pytania?
JSON Schema to slownictwo umozliwiajace adnotowanie i walidowanie dokumentow JSON, zdefiniowane jako szkic IETF. Opisuje oczekiwana strukture dokumentu JSON: jakie wlasciwosci powinien miec, ich typy (string, number, array, object), ktore sa wymagane, zakresy prawidlowych wartosci, wzorce regex dla lancuchow i wiele wiecej. Jest to de facto standard dokumentowania i walidowania interfejsow API REST, kontraktow danych i konfiguracji aplikacji.
Najnowsza wersja to JSON Schema draft 2020-12, opublikowana w grudniu 2020 roku. Wprowadza ulepszenia do $ref (mozna teraz laczyc z innymi slowami kluczowymi), prefixItems dla tablic tupli oraz slownictwo unevaluatedProperties. Ze wzgledu na kompatybilnosc ze starszymi narzędziami draft-07 pozostaje szeroko stosowany. OpenAPI 3.1 przyjmuje JSON Schema draft 2020-12 jako podzestaw, wiec jesli uzywasz OpenAPI 3.1, powinienes stosowac 2020-12.
W JSON Schema slowo kluczowe 'required' to tablica lancuchow z nazwami wlasciwosci, ktore musza byc obecne w obiekcie. Wlasciwosc zdefiniowana w 'properties', ale nieumieszczona na liscie 'required', jest implicite opcjonalna: moze byc obecna lub nieobecna bez niepowodzenia walidacji. To rozroznienie jest kluczowe dla interfejsow API: brakujace wymagane pole w zadaniu powinno zwrocic blad 400, podczas gdy nieobecne pole opcjonalne po prostu uzywa wartosci domyslnej.
Dla tablic obiektow uzyj 'type': 'array' z 'items' wskazujacym na schemat zawartego obiektu. Na przyklad: { 'type': 'array', 'items': { 'type': 'object', 'properties': { ... } } }. Mozesz rowniez zdefiniowac 'minItems' i 'maxItems', aby kontrolowac dlugosc tablicy, oraz 'uniqueItems': true, aby wymagac braku duplikatow. W przypadku tablic o stalej dlugosci z heterogenicznymi typami uzyj 'prefixItems' (draft 2020-12) lub 'items' jako tablicy (draft-07).
$ref to slowo kluczowe JSON Schema, ktore odwoluje sie do innego schematu przez URI, umozliwiajac wielokrotne definicje. Uzywane jest z $defs (draft 2020-12) lub definitions (draft-07), aby uniknac powtarzania tej samej struktury. Na przyklad schemat 'Address' zdefiniowany raz mozna odwolywac zarowno z 'billingAddress', jak i 'shippingAddress'. Zmniejsza to redundancje, upraszcza utrzymanie i jest niezbedne dla schematow OpenAPI ze wspoldzielonymi modelami na wielu punktach koncowych.
Historia JSON Schema i ekosystem walidacji
JSON Schema zostal zaproponowany przez Krisa Zypa w 2009 roku jako nieformalna specyfikacja opublikowana na blogu SitePen. Pierwsza formalna wersja jako szkic IETF to draft-00 z 2010 roku. Od tego czasu bylo wiele rewizji (draft-01 do draft-07, nastepnie 2019-09 i 2020-12) bez uzyskania statusu oficjalnego RFC, choc jest powszechnie stosowany jako de facto standard. Proces standaryzacji IETF wymaga implementacji referencyjnych i testow interoperacyjnosci, ktore spolecznosc JSON Schema aktywnie uzupelnia.
Integracja JSON Schema z OpenAPI jest fundamentalna we wspolczesnym tworzeniu interfejsow API. OpenAPI 2.0 (Swagger) uzywalo ograniczonego podzbioru JSON Schema draft-04. OpenAPI 3.0 poprawilo kompatybilnosc, ale zachowalo wlasne rozszerzenia, takie jak 'nullable'. OpenAPI 3.1 przyjelo pelne JSON Schema draft 2020-12, eliminujac rozbiezznosci. Kluczowe biblioteki walidacyjne to ajv (Another JSON Schema Validator, JavaScript, z obsluga draft 2020-12), jsonschema (Python), json-schema-validator (Java) i NJsonSchema (.NET).
Zod, TypeBox i Yup reprezentuja ewolucje, w ktorej schemat i walidacja sa definiowane w TypeScript z automatycznym wnioskowaniem typow, generujac JSON Schema jako wyjscie (nie wejscie). Ten wzorzec 'schema-first with type inference' wypiera bezposrednie uzycie JSON Schema w nowoczesnych projektach TypeScript, choc JSON Schema pozostaje niezbedny dla walidacji miedzyjezycznej, kontraktow API miedzy zespolami o roznych stosach technologicznych i dokumentacji zdarzen w architekturach sterowanych zdarzeniami (AsyncAPI).