DokumentyObrazyMediaNarzędzia PDF

Generator JSON Schema Online

Generuj JSON Schema z dowolnego JSON. Idealne do walidacji API i dokumentacji.

Processed in your browser

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.

Trzy kroki, żadnych komplikacji

1

Wklej swoj JSON

Wklej dowolny poprawny obiekt JSON. Generator analizuje strukture i typy kazdego pola.

2

Przejrzyj wygenerowany schemat

JSON Schema pojawia sie z wywnioskowanymi typami, wymaganymi wlasciwosciami i opcjonalnymi opisami.

3

Skopiuj lub pobierz schemat

Uzyj schematu w swoim API, walidatorze (ajv, zod) lub dokumentacji OpenAPI. Skopiuj jednym kliknieciem.

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).