openreferral / api-specification

This is the working repository for Open Referral's Human Services Data API protocols.
https://openreferral.readthedocs.io/en/latest/hsda/
Other
29 stars 13 forks source link

Response Envelope #6

Open kinlane opened 7 years ago

kinlane commented 7 years ago

THis would be the time to adopt JSON API, HAL, or other evolutionary approach to responses - let's discuss.

switzersc commented 7 years ago

Yes! I'm a major fan of collection+JSON for collection data sets that are primarily read (rather than read+write or write-only) and need to support API querying functionality. Do we have the API user stories solidified, in terms of who we think will be the primary developer consumers of these APIs and what their consumption use cases look like? I think that'll help us determine the best format type.

Questions I have around this:

greggish commented 7 years ago

These look like great questions. I can speak a bit to the user types, although they are still in early stages.

So far we've identified four types of use:

I think there's still some uncertainty as to whether that fourth bullet is indeed its own use case (rather than say a subtype of the third user type)...

kinlane commented 7 years ago

Great thoughts @switzersc -- I definitely need to do more thinking about the client implementations, weighing that in relation to @greggish user / implementation list he is cultivating. I'm pretty confident I'm going to go suggest collection+JSON for a v2.0 rework, but will weigh maintaining to versions side by side -- keeping the basic, light weight simple JSON, and then more advanced users / clients can negotiate the collection+JSON edition.

kinlane commented 7 years ago

I think your content negotiation question is critical @switzersc -- I want to support HTML, CSV, XML, and JSON versions coming out of gate. I could see continued support of many media types, even some very legacy once.

kinlane commented 7 years ago

This is really overlapping with hypermeda #7 as @switzersc points out, but also with schma filter #21. To make things worse, I think I'm going to introduce another thread specifically on content-type negotation, aside from hypermedia conversations, and augmenting schema filtering conversation, but with alternate path than using prefer header. I'm looking to head of complexity debates with content-negotiation.