web-dev-qa-db-fra.com

Comment générer un fichier Openapi 3.0 YAML à partir de printemps existant REST API?

J'ai un printemps existant REST API pour lequel je veux générer le fichier Openapi 3.0 YAML et non Swagger 2.0 JSON/YAML?

Depuis maintenant, Springfox ne prend pas en charge la génération de YamL. Il génère JSON avec Swagger 2.0 (qui suit Open API 3.0 Spec).

En outre, il y a https://github.com/openapi-tools/swagger-maven-plugin Mais il ne semble pas supporter le repos de printemps.

J'ai essayé le plug-in Kongchen Spring-Maven-Maven, capable de générer le fichier YamL, mais avec la définition de Swagger 2.0 et non l'API 3.0 ouverte.

swagger: "2.0"
info:
  description: "Test rest project"
  version: "1.0"
  title: "Some desc"
  termsOfService: "http://swagger.io/terms/"
  contact:
    name: "Rest Support"
    url: "http://www.swagger.io/support"
    email: "[email protected]"
  license:
    name: "Apache 2.0"
    url: "http://www.Apache.org/licenses/LICENSE-2.0.html"
Host: "example.com"
basePath: "/api/"

Donc, ma question est de savoir comment puis-je générer le fichier YamL API ouvert comme:

openapi: 3.0.0
info:
  description: Some desc
  version: "1.0"
  title: Test rest project
  termsOfService: http://swagger.io/terms/
  contact:
    name: Rest Support
    url: http://www.swagger.io/support
    email: [email protected]
  license:
    name: Apache 2.0
    url: http://www.Apache.org/licenses/LICENSE-2.0.html

J'utilise actuellement swagger-maven-plugin Pour générer un fichier YAML avec la définition de Swagger 2.0 et la convertir pour ouvrir la définition API 3.0 à l'aide de swagger2openapi AT https://mermed.org.uk/openapi-converter

Question 1:
Capture de plugin à ressort-maven-maven-maven io.swagger.v3.oas.annotations Pour générer l'YAML?

Question 2:
[.____] Quel est le meilleur moyen de générer YAML avec des définitions d'API ouvertes dans un projet MVC de printemps?

Question 3:
Pouvez io.swagger.v3.oas être utilisé avec des projets de printemps ou ce n'est que pour les projets JAX-RS?

17
anonxss

Il me manquait une bibliothèque pour cela plus longtemps. Enfin, a décidé de mettre en œuvre mon propre générateur https://github.com/jrcodeza/spring-openapi Peut-être que vous pouvez vérifier aussi. Il est basé sur la réflexion et le soutien de Javax et des annotations de printemps. Il génère également un modèle d'héritage (avec des discriminateurs) basés sur des annotations Jackson. En plus, vous pouvez définir vos propres intercepteurs si vous souhaitez modifier le processus de génération (par exemple, lorsque vous avez vos propres annotations et que vous avez besoin d'ajuster des sections de schéma générées). Vous pouvez l'utiliser en mode d'exécution ou en tant que plugin maven. Il y a aussi OpenAPI3 à Java Generator, qui génère le modèle. Encore une fois, il génère également des annotations Javax et Jackson Annotations pour une héritage correcte.

1
Jakub Remenec