soap - How do you create backwards compatible JAX-RS and JAX-WS APIs? -
jax-rs , jax-ws great producing api. however, don't address concern of backwards compatibility @ all.
in order avoid breaking old client when new capabilities introduced api, have accept , provide exact same input , output format did before; many of xml , json parsers out there seem have fit if find field doesn't map anything, or has wrong type.
some json libraries out there, such jackson , gson, provide feature can specify different input/output representation given object based on runtime setting, seems suitable way handle versioning many cases. makes possible provide backwards compatibility annotating added , removed fields appear according version of api in use client.
neither jaxb nor other xml databinding library have found date has decent support concept, nevermind being able re-use same annotations both json , xml. adding jaxb-ri or eclipselink moxy seems potentially possible, daunting.
the other approach versioning seems to version classes have changed, creating new package each time api published , making copies of modified dto, service, , resource classes in new package type information versioned binding , dispatch systems. approach seems more laborious me.
my question is: how have designed jave api providers backwards compatibility? worked, didn't?
links case studies or blog posts on subject appreciated; i've done googling haven't been finding discussion of this.
i'm tech lead eclipselink moxy, i'm interested in versioning requirements. can reach me through blog:
moxy offers means represent jaxb metadata xml file. can leverage create multiple mappings same object model:
Comments
Post a Comment