La validation de JSON contre Swagger API schéma
J'ai créé une API spec de certains fichiers JSON et je suis en train de tester si les fichiers de valider à l'encontre de l'API spec.
Il y a quelques bons outils pour valider les contre JSON Schema, mais je n'ai pas eu la chance de trouver un outil pour la validation des specs, créé dans le Style (outil pour la création de l'API schéma). La seule solution que j'ai trouvé est la génération d'un client/serveur dans le Swagger-Éditeur, il est assez lourd.
Est-il pas déjà un outil permettant de valider JSON contre Swagger Schéma?
Voulez-vous vérifier que votre spec est valide OpenAPI (autrefois connue sous la dénomination. Swagger) spec ou de valider qu'une mise en œuvre de cette spécification serait de produire JSON qui est valable au sujet de votre JSON schémas?
La question est uniquement de vérifier si un JSON est valide par rapport à l'OpenAPI spec.
Avez-vous regardé medium.com/@betz.mark/... ?
L'Arrogance du programme de validation nœud package (npmjs.com/package/swagger-validation) semble aussi adapté.
avez-vous ce résolu? Je ne vois pas de réponse satisfaisante.
La question est uniquement de vérifier si un JSON est valide par rapport à l'OpenAPI spec.
Avez-vous regardé medium.com/@betz.mark/... ?
L'Arrogance du programme de validation nœud package (npmjs.com/package/swagger-validation) semble aussi adapté.
avez-vous ce résolu? Je ne vois pas de réponse satisfaisante.
OriginalL'auteur Peter Gerhat | 2016-09-01
Vous devez vous connecter pour publier un commentaire.
Arnaud dans les commentaires est juste qu'il y a deux questions distinctes ici.
Vous pouvez
En d'autres termes, voici quelques JSON à partir d'une demande ou le corps de la réponse, est-il correct?
Swagger s'appuie sur une autre norme appelée JSON Schema pour son les objets de schéma, qui sont ce qui décrit le JSON (plutôt que les points de terminaison ou de métadonnées). Swagger utilise un sous-ensemble de JSON Schema (manquant:
oneOf
,patternProperties
, entre autres). À cette fin, vous pouvez utiliser un JSON validation de Schéma. Il y a 37 répertoriés ici; je vais vous donner un shoutout à ce validateur en ligne qui prend également en charge le format YAML schémas.Mais, quand j'ai dit que Swagger s'appuie sur un sous-ensemble de l'API JSON, j'ai menti. Il y a une poignée de champs fixes qui ont une signification particulière dans Swagger qui ne fait pas partie de JSON Schema. L'un d'eux est
discriminator
qui est utilisé pour le polymorphisme. Je ne suis pas au courant d'un Swagger validateur qui peut traiterdiscriminator
. Il y a un bon nombre d'outils pour swagger et certains prétendent faire les validations, mais beaucoup sont des abandonware, destiné aux les anciennes versions, pas complet, liée à d'autres technologies, et ainsi de suite. Si il y a une maturité et bien entretenu bibliothèque que je suis absent, j'aimerais savoir.Pour la seconde, comment pourrais-je le mettre en œuvre sans l'aide d'un schéma externe du programme de validation? Je veux juste valider une instance d'un schéma à l'encontre d'un (swagger) schéma. Comment dois-je procéder? Merci.
en interne, il ressemble à swagger est en utilisant le z-schéma json validateur, donc théoriquement vous regardez pour voir quelles sont les fonctionnalités disponibles? github.com/zaggino/z-schema
Hey Chris, pouvez-vous indiquer où swagger est à l'aide de z-schéma?
Cette solution n'est pas travaillé pour moi. Volontairement supprimé chemin param déclaration et testé. Il n'a pas à se plaindre que le chemin d'accès param manqué. C'est juste de la validation de la bien formé json ou pas.
OriginalL'auteur mgold
Si votre Swagger JSON est hébergé, vous pouvez utiliser l'url suivante:
http://online.swagger.io/validator/debug?url=your_url
OriginalL'auteur josephpconley
L'OpenAPI 2.0 /Swagger schéma est disponible dans quelques endroits, il est juste un peu difficile à trouver en raison de la forte utilisation du mot "schéma" dans swagger lui-même.
De sorte que vous pouvez pointer un générique du programme de validation à ce schéma et votre document. Par exemple, cela fonctionne très bien pour moi en utilisant vscode et Red Hat YAML extension.
OriginalL'auteur Michael