[JAVA] Comment faire un générateur d'oléore en utilisant Swagger Codegen

introduction

Cela fait un moment que le swagger est devenu un sujet brûlant. Je l'utilise très facilement au travail. Lors de l'écriture de la définition de l'API avec swagger-editor, vous pouvez en fait ignorer la requête et la vérifier, ou demander à un autre ingénieur d'appuyer sur l'API pour la vérifier. Puisque postman etc. peut importer directement des fichiers swagger, vous pouvez créer des commandes de gestion simples par swaggar-> postman-> curl generation.

Cependant, lorsque j'essaie de l'utiliser pour l'implémentation, il y a des moments où il n'y a pas de générateur pour le framework Web que j'utilise, ou une bibliothèque cliente http différente est utilisée, donc c'est un peu insuffisant à utiliser pour mon environnement. pense.

Ceci est une introduction à l'utilisation du générateur de code pour ces personnes.

swagger-codegen

swagger Générateur de code java officiel. Il a une implémentation Plagger et peut générer à la fois des clients et des serveurs.

Le moteur de modèle de code est moustache.

mustache Il existe des implémentations compatibles dans différents langages et swagger-codegen utilise jmustache. Exemple de sortie "No repos:" s'il y a des dépôts dans Map et que le nom du membre des dépôts n'est pas affiché

python


{{#repos}}{{name}}{{/repos}}
{{^repos}}No repos :({{/repos}}

Génération de modèle de générateur

swagger-codegen est un projet maven et vous devez avoir maven installé pour le construire. Vérifiez d'abord et construisez.

python


git clone https://github.com/swagger-api/swagger-codegen
cd swagger-codegen
mvn

Ensuite, générez un modèle pour le générateur.

python


java -jar modules/swagger-codegen-cli/target/swagger-codegen-cli.jar meta \
  -o output/myLibrary -n myClientCodegen -p com.my.company.codegen

Le modèle de projet maven est sorti vers output / myLibrary. Il s'agit d'une implémentation simple qui hérite de la classe DefaultCodegen.

La structure des répertoires est la suivante

python


src
└── main
    ├── java
    │   └── com
    │       └── my
    │           └── company
    │               └── codegen
    │                   └── MyclientcodegenGenerator.java
    └── resources
        ├── META-INF
        │   └── services
        │       └── io.swagger.codegen.CodegenConfig
        └── myClientCodegen (Fichier modèle)
            ├── api.mustache
            ├── model.mustache
            └── myFile.mustache

Vous pouvez modifier la sortie du formulaire fixe en réécrivant le modèle. Si vous voulez faire d'un étui de chameau un étui de serpent, vous l'écrivez en java.

Construisez et exécutez-le comme un essai. Pour une raison quelconque, certains gars n'ont pas généré de fichier modèle, je l'ajouterai donc aussi

python


cd output/myLibrary
touch src/main/resources/myClientCodegen/myFile.mustache
mvn install
cd ../../
java -cp output/myLibrary/target/myClientCodegen-swagger-codegen-1.0.0.jar:modules/swagger-codegen-cli/target/swagger-codegen-cli.jar   io.swagger.codegen.SwaggerCodegen generate -l myClientCodegen  -i http://petstore.swagger.io/v2/swagger.json   -o myClient

Cela générera une bibliothèque dans le répertoire myClient.

Ayons une vie de swgger confortable!

Recommended Posts

Comment faire un générateur d'oléore en utilisant Swagger Codegen
Comment créer une application à l'aide de Tensorflow avec Android Studio
Comment créer un lecteur de musique Android imposant
Comment créer un certificat OLEORE (certificat SSL, auto-certificat)
Comment faire un pot ombré
Comment rendre une image partiellement transparente avec le traitement
Java - Comment créer JTable
Comment gérer les instances
[Rails] Comment faire des graines
Comment autoriser à l'aide de graphql-ruby
[Version 2020] Comment envoyer un e-mail à l'aide d'Android Studio Javamail
Qu'est-ce qu'un objet immuable? [Explication comment faire]
Comment créer un hinadan pour un projet Spring Boot à l'aide de SPRING INITIALIZR
Comment créer un conteneur Java
Comment créer un pilote JDBC
Comment insérer une bibliothèque externe
Comment publier une application à l'aide de la construction d'environnement d'instance AWS (3) EC2
Comment créer un écran de démarrage
Comment créer un plug-in Jenkins
J'ai essayé d'en faire une URL arbitraire en utilisant l'imbrication de routage
Comment faire un projet Maven
Comment créer un tableau Java
Comment faire un diamant révolutionnaire en utilisant Java pour déclaration wwww
[Android] Comment créer un fragment de dialogue
Comment créer CloudStack à l'aide de Docker
Comment créer un environnement pour n'importe quelle version de Ruby en utilisant rbenv
Comment créer une application avec un mécanisme de plug-in [C # et Java]
Comment recadrer une image avec libGDX
Créer un fichier exécutable avec Android Studio
Comment exécuter un contrat avec web3j
Comment créer un résumé de calendrier Java
[Rails] Comment télécharger des images à l'aide de Carrierwave
Comment brouiller l'image (super facile)
Je veux créer une application ios.android
[Java] Comment calculer l'âge à l'aide de LocalDate
Étapes pour publier une application sur Heroku
Comment créer un robot Discord (Java)
Comment définir un bean de classe interne
[Swift5] Comment mettre en œuvre une animation à l'aide de "lottie-ios"
Pour implémenter la publication d'images à l'aide de rails
Comment insérer des icônes à l'aide de Font awesome
[Swift] Comment générer un identifiant pour identifier de manière unique une certaine chose (en utilisant UUID)
Comment faire une méthode de jugement pour rechercher n'importe quel caractère dans le tableau
Comment créer un formulaire Excel à l'aide d'un fichier modèle avec Spring MVC
Comment sortir Excel et PDF avec Excella
Comment exécuter une méthode et simuler avec JUnit
[Rails] Comment créer un graphique à l'aide de lazy_high_charts
Comment écrire une instruction if pour améliorer la lisibilité-java
Comment utiliser un tableau pour les clés HashMap
Comment réduire l'image de Spring Boot Docker
Comment supprimer un contrôleur, etc. à l'aide d'une commande
Comment jouer de la voix ou de la musique en utilisant javascript
[Ethereum] Comment exécuter un contrat en utilisant web3j-Part 2-