Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

277
Vistas
¿Cuál es la forma correcta de usar openapi-generator para generar stubs de servidor ktor?

Cuando intento generar stubs del lado del servidor para ktor desde openapi, la salida para mí no parece muy útil.

Configuré un proyecto de ejemplo en Github , donde se puede revisar la configuración. Como necesito usar maven en mi proyecto real, también lo usé aquí, pero supongo que esto no debería marcar la diferencia con otros métodos de generación.

La parte relevante del POM es esta:

 <build> ... <plugins> ... <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-resources-plugin</artifactId> <version>2.6</version> <executions> <execution> <id>resources</id> <phase>compile</phase> <goals><goal>copy-resources</goal></goals> <configuration> <outputDirectory>${project.build.directory}/classes</outputDirectory> <resources> <resource> <directory>${project.basedir}/resources</directory> </resource> </resources> </configuration> </execution> </executions> </plugin> </plugins> </build>

Lo que se generará es lo siguiente:

  • Modelo de datos
  • Un objeto Paths.kt que contiene las rutas a mis rutas en formato ktor-ubicaciones
  • Un trozo de ejemplo que implementa la API como una función de extensión de io.ktor.routing.Route
  • Una aplicación completa, que incluye configuraciones, Dockerfile, Gradle Files, etc.

Viniendo de SpringBoot y Swagger, estoy un poco confundido, ya que este conjunto de archivos no es realmente útil si desea crear una aplicación real que implemente una lógica comercial real. Hubiera esperado alguna implementación predeterminada que contuviera métodos únicos que solo necesito implementar/anular. Me doy cuenta de que ktor no tiene DI incorporado, por lo que también esperaría tener que extender el código auxiliar de routing en mi aplicación de alguna manera.

Sin embargo, con este conjunto de código generado, realmente solo puedo usar el modelo de datos y el objeto Paths.kt . Tendré mi propia aplicación y la implementación predeterminada que no puedo anular, pero necesito reescribir completamente yo mismo.

Entonces, mi pregunta es cómo configurar una aplicación ktor adecuada que implemente las especificaciones de openapi. ¿Me pierdo algo o realmente solo obtengo el modelo y Paths.kt para trabajar?

Editar

Para mayor claridad: especialmente con estas partes de mi aplicación, no estoy feliz de no tener soporte de las herramientas:

 fun Application.module(testing: Boolean = false) { // other setup routing { // some other interfaces I may have FooApiImpl() } }
 /** * This Api Implementation has to be written completely manually. No help from the generated Code... */ @KtorExperimentalLocationsAPI fun Route.FooApiImpl() { get<Paths.getAllFoos> { call.respond(listOf( Foo( id = -1, bar = "hello"), Foo( id = -2, bar = "world") )) } // the path gets named after the first method, which is weird in my eyes. post<Paths.getAllFoos> { val foo = call.receive<Foo>() // fooService.save(foo) call.respond(foo) } delete<Paths.deleteFooById> { path -> val id = path.id // fooService.deleteById(id) call.respond(HttpStatusCode.NoContent) } }
over 4 years ago · Hanz Gallego
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda