mk321
#programowanie #java

Jak walidować poprawnośc JSON-a? Coś w stylu XML Schema, tylko dla JSON-a.

Jest niby http://json-schema.org/ Ale to jakaś wersja beta.
Czego się normalnie używa?
2
  • Najlepsze
  • Wszystkie komentarze
nachteil
@mk321: Mamy ponad 100 serwisów na produkcji, od mniej więcej roku migrujemy je stopniowo na json-schemę i Swaggera, ścieżka uwzglednia walidację poprawności requestów i responsów na podstawie schemy oraz generowanie klientów na jej podstawie. Wszystko działa i nie ma problemów z implementacjami, mimo, że formalnie jest to draft.
1
fegwegw
@mk321: Gson? Jak schemat będzie niepoprawny, to poleci wyjątek.
0
mk321
mk321 Autor
@fegwegw: chodzi o to, żeby walidować poprawność odpowiedzi z API przez schemę (jakiś dokument opisujący typy i strukturę JSON-a).

Biblioteka do deserializacji (np. Gson) to inna sprawa. Załóżmy, że chcę po prostu udostępnić schemę (jakiś dokument) i nie wiem jakiego języka będzie używał klient. Nie mogę mu dać klas Javowych.
0
Koryntiusz
Koryntiusz
@mk321: swagger?
0
s.....r
s.....r
0
mk321
mk321 Autor
@Koryntiusz: tzn? Chodzi o schemę w Swaggerze?
https://swagger.io/specification/#componentsObject
O ile się nie mylę, to też korzysta z JSON Schema (czyli tego drafta specyfikacji).
0
mk321
mk321 Autor
@shar:

There was something called JSON Schema, which was an Internet Draft which expired in 2013. Internet Drafts are the first stage to producing an Internet Standard.


To jest własnie to JOSN Schema, które jest w drafcie (nie jest jeszcze RFC).
0
u.....E
0
mk321
mk321 Autor
@uzytkownikTHCE: przecież zalinkowałem do json-schema.org. Ten link, który wkleiłeś to tylko jej implementacje. Ale nadal są to implementacje specyfikacji, która jest w drafcie (czyli raczej nie powinna być używana na produkcji).
0
u.....E
@mk321: no nie ma innej specyfikacji przeciez.
Czemu nie powinna być uzywana na produkcji bo nie kumam, zmieną specyfikacje i istniejace wersje walidatorow staną się magicznie podatna na błędy?
0