Uploaded image for project: 'CXF'
  1. CXF
  2. CXF-4959

Support hierarchical mimetypes

    XMLWordPrintableJSON

Details

    • Improvement
    • Status: Closed
    • Major
    • Resolution: Fixed
    • 2.7.4
    • 2.7.5, 3.0.0-milestone1
    • JAX-RS
    • None
    • Unknown

    Description

      I am attempting to provide a custom hypermedia model through the mimetype returned in a response. I would like to ensure that the Content-Type header reflects this while serializing the data according to the best fit message body writer. Unfortunately, this doesn't work. I have tried two approaches:

      1. Annotated the service method with @Produces("application/my-type+json")
      2. Used a ContainerResponseFilter to set the Content-Type header according to the data type being returned (effectively the same goal as #1)

      The result of either approach is not good, but they fail differently.

      1. Results in a 404 as the client is sending an accept for application/json
      2. The serialization fails with a no message body writer found error

      I'd expect both of these approaches to work as follows:

      1. CXF determines the best match given the available producers. For example, application/my-type+json is clearly applicable under application/json, so it should match application/json request Accept headers as well as more specific Accept values.
      2. The message body writer for application/json should apply to application/my-type+json since the latter is clearly applicable under application/json.

      I believe the argument against this request would include a plea for forcing the client to specify exactly what it wants returned and having the server rigidly behave. However, I think this falls under the purview of the Robustness Principle (Be conservative in what you send, be liberal in what you accept). It would be a much better experience to implement something akin to what I have described.

      Attachments

        Activity

          People

            sergey_beryozkin Sergey Beryozkin
            redijedi Todd Orr
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: