Issue 17618

Add XML support to enable Annosys

17618
Reporter: trobertson
Assignee: cgendreau
Type: NewFeature
Summary: Add XML support to enable Annosys
Priority: Critical
Resolution: Fixed
Status: Resolved
Created: 2015-06-09 09:45:15.595
Updated: 2015-11-10 12:32:24.643
Resolved: 2015-10-20 14:30:38.051
        
Description: GBIF are committed to support the efforts to research by the BGBM to enable record level annotation (the AnnoSys project of which Lutz is the contact L.Suhrbier@bgbm.org).

GBIF need to offer a valid XML (DarwinCore) representation of the verbatim and interpreted occurrence API response.  I propose we do this when the appropriate HTTP Header is set to only accept application/xml and otherwise we default to the JSON view.

]]>
    


Author: cgendreau
Created: 2015-10-07 16:16:53.856
Updated: 2015-10-07 16:33:14.811
        
Is this only for a single occurence requests ?
{quote}
/occurrence/\{key\}
and
/occurrence/\{key\}/verbatim
{quote}
    


Author: trobertson@gbif.org
Created: 2015-10-07 16:25:27.244
Updated: 2015-10-07 16:28:06.254
        
Yes, we agreed to support both interpreted and verbatim in a DwC XML format:

  http://api.gbif.org/v1/occurrence/1054853153
  http://api.gbif.org/v1/occurrence/1054853153/verbatim

They want us to offer the same on fragments, but that is not feasible by the nature of what our index is (a DwC view)
    


Author: cgendreau
Created: 2015-10-19 14:31:58.002
Updated: 2015-10-19 14:31:58.002
        
Initial commit
https://github.com/gbif/occurrence/commit/1a95940b7e9a6e8ad4c96fb5df82328fb50573b9
    


Author: cgendreau
Created: 2015-10-20 14:30:20.121
Updated: 2015-10-20 14:30:20.121
        
After review:
https://github.com/gbif/occurrence/commit/d858292fef8a3fad92e99170f5b16d292a2b85fe
    


Author: cgendreau
Created: 2015-11-10 12:32:24.643
Updated: 2015-11-10 12:32:24.643
        
It was discussed and decided not to use content negotiation headers in the request due to added complexity this would bring in both caching layers (i.e. keying objects by both URL and the content type which is not in the current system) and the service, which would have to boost the priority of JSON over XML to display JSON over XML in the browser.

It was also discussed and deemed unwise to assume that the returned content is the final schema we would select for enabling XML responses across the full API. Because of this we decided to use a project specific URL which we can remove or adjust without adding much complexity, or making decisions that we are not sure we wish to make yet.