Overview# This is a note about using the following repository to validate JSON:API compliance.
https://github.com/elliotttf/jsonapi-validator
At the time of writing this article, it appears to have not been updated for 7 years, so it may not support the latest schemas, but I was able to perform simple validation.
Usage# I prepared the following repository to try the library above.
https://github.com/nakamura196/jsonapi-validator-demo
Installation# This assumes the use of nvm, but it is not required.
g c n n p i d v v n t m m p j m c s i u l o s i o n 2 e n a 2 e p 2 i 2 h - t v t a p l s i : d / a / t g o i r t - h d u e b m . o c o m / n a k a m u r a 1 9 6 / j s o n a p i - v a l i d a t o r - d e m o
Testing# Valid Example# { } " } " ] j , d s a o t n " " } a { } a v m " p e e : i r t " s a " } [ " " " } : i " l t i a o : i y d t { n n p " t " { k " } e : r " : s s " i t " e : " b i " : l 1 u t 1 f " " 0 t l . { " h r _ e e 0 : r e A s " " e c 0 " : , { f o 0 : " r 2 " : d 4 { サ " 8 ン " , 5 プ h 3 ル t " " t , p : / / j s o n a p i . o r g / f o r m a t / 1 . 0 / "
0 / 1 n _ o v d a e l _ i m d o . d j u s l o e n s / i j s s o v n a a l p i i d - v J a S l O i N d a A t P o I r . b i n / j s o n a p i - v a l i d a t o r . j s - f / 0 1 _ v a l i d . j s o n Invalid Example: Unnecessary Properties# There is an unnecessary property aaa.
{ } " } " } " ] j , a , d s a a o a t n " " } " " a { } a v m : b " p e e b : i r t { b " s a " } " [ " " " } : i " l : t i a o : i y d t { n n " p " t " { k " } c e : r " : s s c " i t " e c : " b i " : l " 1 u t 1 f " " 0 t l . { " h r _ e e 0 : r e A s " " e c 0 " : , { f o 0 : " r 2 " : d 4 { サ " 8 ン " , 5 プ h 3 ル t " " t , p : / / j s o n a p i . o r g / f o r m a t / 1 . 0 / "
I / n n v s s a s s a s s a s s m s s a s s a s s m s s o a h c d h c d h c d h c i h c d h c d h c i h c d l o h d o h d o h d o h s o h d o h d o h s o h e i u e i u e i u e i u e s u e i u e i u e s u e _ d l m t l m t l m t l m i l m t l m t l m i l m m d a i d a i d a i d a n d a i d a i d a n d a o J P o P o P o P g P o P o P g P d S N a n N a n N a n h a P N a n N a n h a P m a u O O t a O t a O t a a t r O t a O t a a t r a t l N T h l T h l T h l v h o T h l T h l v h o t h e : P : P : P e : p : P : P e : p c : s A h r h r h r e h r h r e h / P a # a # a # r # r a # a # r # r # j I v p v p v p e / t v p v p e / t e / s . e a e e a e e a e q r y e a e e a e q r y x o o d r d r d r u e : d r d r u e : a n n a d t a d t a d t i q a d t a d t i q c e a d i y d i y d i y r u e d i y d i y r u m t O p d t : d t : d t : e i r d t : d t : e i e l f i i i i i i i d r r i i i i d r t y - t o a t o a t o d e o t o a t o d e a v i n a i n a i n a p d r i n a i n a p d o a o a a o a a o a t r s o a a o a t r n l n l n l n l a o n l n l a o e i a P a P a P p a P a P p d l r l r l r e l r l r e s a o o o r o o r c t p p p p p p t p p p p t h o r e r e r e y r e r e y e r o r o r o r o r o r m / p t p t p t ' p t p t ' a b e i e i e i e e i e i m i r e r e r e r r e r e e i n t s t s t s r t s t s t n / i i i o i i a j e e e r e e ' o s s s s s s s . n o . . . ' . . e n . O a f p . i - v a l i d a t o r . j s - f / 0 2 _ i n v a l i d _ a d d i t i o n a l _ p r o p e r t i e s . j s o n Invalid Example: Missing Required Properties# This is an example where the required property type is missing.
{ } " } " ] j , d s a o t n " " } a { } a v m " p e e : i r t " s a " } [ " " } : i " l i a o : i d t { n n " t " { k " } : r " : s s i t " e " b i " : l 1 u t 1 f " 0 t l . { " h _ e e 0 : r A s " " e 0 " : , { f 0 : " 2 " : 4 { サ 8 ン " 5 プ h 3 ル t " " t , p : / / j s o n a p i . o r g / f o r m a t / 1 . 0 / "
I / n n v s s t s s m s s t s s s s a s s m s s a s s m s s o a h c y h c i h c y h c h c d h c i h c d h c i h c d l o h p o h s o h p o h o h d o h s o h d o h s o h e i u e e u e s u e e u e u e i u e s u e i u e s u e _ d l m : l m i l m : l m l m t l m i l m t l m i l m m d a d a n d a d a d a i d a n d a i d a n d a o J P o P g P n P P o P g P o P g P d S b a b h a P b a u m a N a n h a P N a n h a P m a u O e t j a t r e t l a t O t a a t r O t a a t r a t l N h e v h o h l t h T h l v h o T h l v h o t h e o : c e : p n : c : : P e : p : P e : p c : s A b t e u h h r e h r e h / P j # r # r l # # a # r # r a # r # r # j I e / e / t l e / v p e / t v p e / t e / s . c t q r y . o x o e a e q r y e a e q r y x o o t y u e : n a n d r u e : d r u e : a n n . p i q e c e a d t i q a d t i q c e a e r u t O t O d i y r u e d i y r u m t O p e i y f l f d t : e i r d t : e i e l f i d r p / y i i d r r i i d r t y - e e 2 t o d e o t o d e a v p d / o i n a p d r i n a p d o a r t n o a t r s o a t r n l o y e n l a o n l a o e i p p a P p a P p d e e s l r e l r e s a r c o r o r c t t h p p t p p t h o y e r e y r e y e r m o r o r m / ' a p t ' p t ' a b t e i e e i m i y i r e r r e e i n p n t s r t s t n / e i o i a j ' o e r e ' o s . n s s s . n o e . ' . e n O . O a f f p . . i - v a l i d a t o r . j s - f / 0 3 _ i n v a l i d _ m i s s i n g _ p r o p e r t y . j s o n Summary# I hope this is helpful for using JSON:API.