在 micronaut 版本 3 上,它工作正常,而迁移到 micronaut 4 时,停止工作
在用
注释的端点中 @Get("/{someId}/someAction", produces = ["application/some.v1+json"] )
当我调用它(例如邮递员)时,micronaut 在控制台上给我一个错误
io.micronaut.http.codec.CodecException: Cannot encode value [[]]. No possible encoders found for media type: application/vnd.v1+json
这是我的控制器的一部分
@Validated
@Controller("/something")
class SomethingController(@Inject val service: SomeService) {
@Secured(SecurityRule.IS_AUTHENTICATED)
@Get("/{someId}/someAction",
produces = ["application/some.v1+json"],
consumes = ["application/some.v1+json"])
fun getSomething(
someId: UUID,
principal: Principal
): List<SomeResource> {
principal as MyIdentity
return service.findAll(someId, principal)
}
我的服务有更多端点,有没有一种方法可以编写一个编解码器来处理所有这些海关生产和消费?
通过在应用程序 yaml 上添加编解码器,我能够解决我的问题。我想知道是否有另一种方法可以解决这个问题,因为 micronaut 3 支持这个
https://docs.micronaut.io/latest/guide/index.html#consumesAnnotation