やりたいこと
こんな感じで、クラスのオブジェクトを返したらそのまま JSON のレスポンスになって欲しい
import jakarta.ws.rs.GET; import jakarta.ws.rs.Path; import jakarta.ws.rs.Produces; import jakarta.ws.rs.core.MediaType; @Path("/user") public class LoginHandler { @GET @Produces(MediaType.APPLICATION_JSON) public Response hello() { return new Response("dummy"); } public static class Response { public String state; public LoginStateResponse(String state) { this.state = state; } } }
やり方
quarkus-rest-jackson
を依存関係に入れるだけでできるようになる。
Gradle の場合
dependencies { ... implementation 'io.quarkus:quarkus-rest-jackson' }
Jackson ではなく JSON-B を使いたい場合は、 quarkus-rest-jsonb
というものあります。
公式ドキュメント