Another aspect, although strictly speaking unrelated, is Jackson 3. All custom Jackson 2 serializers are incompatible with Jackson 3, and some annotations are different. It is possible to use both Jackson 2 + 3 annotations in the "code first" approach, and it works fine with Immutables.
I'd expect Jackson 3 to become a necessity in the near future. For Quarkus, it was already on the list of ideas for 3.31, but thankfully moved out. A "code first" approach would save us that headache in the JAX-RS context. Side note: it's possible to use both Jackson 2 and Jackson 3 in the same code base - they can work side by side. On Fri, Feb 13, 2026 at 3:00 PM Jean-Baptiste Onofré <[email protected]> wrote: > Hi Dmitri, > > Thanks for starting this discussion. > > While I have a preference for the code-first approach, I wonder if we can > easily support the Iceberg REST Spec using this method. I would like to use > JaxRS annotations, but it might be tricky to cleanly leverage the Iceberg > REST Spec. > > Just my $0.01 > > Regards, > JB > > On Thu, Feb 12, 2026 at 5:04 PM Dmitri Bourlatchkov <[email protected]> > wrote: > > > Hi All, > > > > I believe OpenAPI (REST) interface definitions that Polaris provides are > > very useful for end users and machine clients. > > > > However, I see that server-side code generation leads to duplication > > between generated code and hand-written code. For example, > > `PolarisCatalogsApi` is generated, but most of the method signatures in > > `PolarisServiceImpl` have to be written by hand to match the generated > > code. > > > > I wonder what people think about using direct hand-written service > classes > > to connect to REST endpoints via Rs-Api (Jakarta) annotations? > > > > I can see that generating service stubs might appear helpful to ensure > that > > all API endpoints have code that matches OpenAPI specs. However, we have > to > > make tests to verify correct behaviour anyway. Those tests could be made > > with a generated client and will automatically ensure correct > hand-written > > code assuming coverage is good. > > > > WDYT? > > > > Thanks, > > Dmitri. > > >
