J'ai créé une spécification d'API à partir de certains fichiers JSON et j'essaie de vérifier si les fichiers sont validés par rapport à la spécification d'API.
Il existe de bons outils pour valider par rapport au schéma JSON, mais je n’ai pas eu la chance de trouver un outil pour valider par rapport aux spécifications créées dans Swagger (outil de création de schéma API). La seule solution que j'ai trouvée consiste à générer un client/serveur dans Swagger-Editor, ce qui est assez fastidieux.
Existe-t-il déjà un outil permettant de valider JSON par rapport au schéma Swagger?
Arnaud dans les commentaires a raison de dire qu'il y a deux questions distinctes ici.
Voulez-vous valider que votre spécification est une spécification OpenAPI (fka. Swagger) valide
Vous pouvez
ou valider qu'une implémentation de cette spécification produirait du JSON valable pour vos schémas JSON?
En d'autres termes, voici quelques JSON provenant d'un corps de requête ou de réponse, est-il correct?
Swagger s'appuie sur un autre standard appelé Schéma JSON pour ses objets de schéma , qui décrivent réellement le JSON (plutôt que les points de terminaison ou les métadonnées). Swagger utilise un sous-ensemble de schémas JSON (manquant: oneOf
, patternProperties
, entre autres). À cette fin, vous pouvez utiliser un validateur de schéma JSON. Il y a 37 répertoriés ici ; Je vais crier à ce validateur en ligne qui prend également en charge les schémas YAML.
Mais lorsque j'ai dit que Swagger s'appuyait sur un sous-ensemble d'API JSON, j'ai menti. Quelques champs fixes ayant une signification particulière dans Swagger ne font pas partie du schéma JSON. L'un d'eux est discriminator
qui est utilisé pour le polymorphisme. Je ne connais pas de validateur Swagger capable de traiter discriminator
. Il y a un bon nombre d'outils pour swagger et certains prétendent effectuer des validations, mais beaucoup sont des abandonwares, destinés aux anciennes versions, non complets, liés à d'autres technologies, etc. S'il me manque une bibliothèque mature et bien entretenue, j'aimerais le savoir.
Si votre JSON Swagger est hébergé, vous pouvez utiliser l'URL suivante: http://online.swagger.io/validator/debug?url=your_url
Le schéma OpenAPI 2.0/Swagger est disponible à quelques endroits. C'est un peu difficile à trouver en raison de l'utilisation intensive du «schéma» de Word dans swagger lui-même.
Vous pouvez donc indiquer un validateur générique à ce schéma et à votre document. Par exemple, cela fonctionne bien pour moi avec vscode et l’extension YAML de Red Hat.