У меня есть приложение для микронавтов, где я пытаюсь использовать openapi-generator для генерации заглушки моих контроллеров. Этот проект напрямую не поддерживает микронавтику, но он поддерживает определения jax-rs API , для которых есть поддержка микронавтов , поэтому я пытаюсь использовать их.
openapi-generator генерирует код в /generated/src/gen/java
TestAPI. java:
package com.owennewburn.generated.api;
import javax.ws.rs.*;
import javax.ws.rs.core.Response;
import io.swagger.annotations.*;
import java.io.InputStream;
import java.util.Map;
import java.util.List;
import javax.validation.constraints.*;
import javax.validation.Valid;
@Path("/test")
@Api(description = "the test API")
public interface TestApi {
@GET
@Produces({ "text/plain" })
@ApiOperation(value = "Test \"Hello World\" endpoint", notes = "", tags={ "test" })
@ApiResponses(value = {
@ApiResponse(code = 200, message = "success", response = String.class) })
String helloWorld();
}
У меня есть приложение basi c в стандартном каталоге /src/main/kotlin
, где я пытаюсь использовать этот интерфейс.
Application.kt:
package com.owennewburn.myapp
import io.micronaut.runtime.Micronaut
class Application: javax.ws.rs.core.Application() {
fun main(args: Array<String>) {
Micronaut.build()
.packages("com.owennewburn.")
.classes(TestController::class.java)
.mainClass(this.javaClass)
.start()
}
}
TestController.kt
package com.owennewburn.myapp
import com.owennewburn.generated.api.TestApi
class TestController: TestApi {
override fun helloWorld(): String {
return "Hello World"
}
}
Затем у меня есть простой тест, который пытается выполнить GET /test
и проверить ответ.
В этом состоянии тест не пройден , но если я переместлю интерфейс в каталог sr c с остальной частью кода приложения, он будет работать . Есть идеи, почему это будет? В обоих случаях код создается и выполняется, но только когда интерфейс находится в главном каталоге проекта, конечная точка создается при запуске кода.