New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Content Negotiation #39

Open
kinlane opened this Issue Jul 9, 2017 · 2 comments

Comments

Projects
None yet
2 participants
@kinlane
Contributor

kinlane commented Jul 9, 2017

I want to introduce this thread to overlap with discussions around data filtering #22, schema filtering #21, response structure #6, and hypermedia #7.

Basics of content negotiation would be, do we offer application/csv, and text/html, as well as applicaiton/json (which is current default).

Advanced would be offering application/vnd.api+json, application/hal+json, or application/vnd.siren+json.

I'm thinking that offering a simple CSV and JSON response for default make sense for newbies. Content negotiation 101. Then we could start loading up some of the more detailed requests, and solving the "return everything" and "return exactly what I want" with introduction of hypermedia type, or even possibly something like application/vnd.hsds+api.

@kinlane kinlane added the road map label Jul 9, 2017

@NeilMcKechnie

This comment has been minimized.

Show comment
Hide comment
@NeilMcKechnie

NeilMcKechnie Aug 10, 2017

Have you also considered XML? I think you had mentioned it, or maybe @timgdavies , related to the HSDS spec. I'm not strongly advocating it as we prefer JSON now, just wanted to mention it.

NeilMcKechnie commented Aug 10, 2017

Have you also considered XML? I think you had mentioned it, or maybe @timgdavies , related to the HSDS spec. I'm not strongly advocating it as we prefer JSON now, just wanted to mention it.

@kinlane

This comment has been minimized.

Show comment
Hide comment
@kinlane

kinlane Aug 31, 2017

Contributor

HSDA will support:

  • CSV
  • JSON
  • XML

Out of the box. Every path except for /complete will support all three--it will only support JSON & XML.

All other projects will support JSON & XML.

My plan was to establish vendor media types, and eventually submit to IANA as projects mature, but my current stance is to hold off:

application/vnd.hsda.csv
application/vnd.hsda.json
application/vnd.hsda.xml

application/vnd.hsda.search.json
application/vnd.hsda.search.xml

application/vnd.hsda.bulk.json
application/vnd.hsda.bulk.xml

application/vnd.hsda.meta.json
application/vnd.hsda.meta.xml

application/vnd.hsda.meta.json
application/vnd.hsda.meta.xml

application/vnd.hsda.taxonomy.json
application/vnd.hsda.taxonomy.xml

application/vnd.hsda.orchestration.json
application/vnd.hsda.orchestration.xml

application/vnd.hsda.custom.json
application/vnd.hsda.custom.xml

application/vnd.hsda.aggregate.json
application/vnd.hsda.aggregate.xml

application/vnd.hsda.utility.json
application/vnd.hsda.utility.xml

Contributor

kinlane commented Aug 31, 2017

HSDA will support:

  • CSV
  • JSON
  • XML

Out of the box. Every path except for /complete will support all three--it will only support JSON & XML.

All other projects will support JSON & XML.

My plan was to establish vendor media types, and eventually submit to IANA as projects mature, but my current stance is to hold off:

application/vnd.hsda.csv
application/vnd.hsda.json
application/vnd.hsda.xml

application/vnd.hsda.search.json
application/vnd.hsda.search.xml

application/vnd.hsda.bulk.json
application/vnd.hsda.bulk.xml

application/vnd.hsda.meta.json
application/vnd.hsda.meta.xml

application/vnd.hsda.meta.json
application/vnd.hsda.meta.xml

application/vnd.hsda.taxonomy.json
application/vnd.hsda.taxonomy.xml

application/vnd.hsda.orchestration.json
application/vnd.hsda.orchestration.xml

application/vnd.hsda.custom.json
application/vnd.hsda.custom.xml

application/vnd.hsda.aggregate.json
application/vnd.hsda.aggregate.xml

application/vnd.hsda.utility.json
application/vnd.hsda.utility.xml

@kinlane kinlane added hsda v1.2 labels Sep 1, 2017

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment