(Replying to PARENT post)

My Datasette project has given me a slightly different perspective on API standards - at least in terms of things like shared definitions of XML, JSON shapes, RDF schemas etc.

Once you've loaded your data into a SQLite database and put Datasette in front of it, your audience can get the data out in any shape that they like.

Consider the museum data in my https://www.niche-museums.com/ website.

Using a SQL query, I can get it out as an array of objects with name, url, address, latitude, longitude: https://www.niche-museums.com/browse.json?sql=select+name%2C...

Or maybe I want to get back the name as "title" and the latitude longitude as lat / lng. I can do that with a different SQL query:

    select name as title, latitude as lat, longitude as lng from museums limit 10
Here's that as JSON: https://www.niche-museums.com/browse.json?sql=select+name+as...

Let's say I want it as an Atom feed. Datasette plugins can add different output renderers, so I can get back an Atom feed like this:

https://www.niche-museums.com/browse.atom?sql=SELECT%0D%0A++...

That's using a convoluted SQL query to define exactly what I want back in that feed.

The point is: if you have a sufficiently flexible API gateway in front of your data, the people consuming your data can define the "standard" that they want to retrieve it in at runtime.

I think that's a really interesting characteristic. It's made me less excited about boil-the-ocean attempts at defining a single standard and getting everyone to support it at once.

[ This thread may not be the best place to raise this idea, since the Python Data API Standards project isn't really in the same realm as the web API formats I'm talking about here ]

๐Ÿ‘คsimonw๐Ÿ•‘5y๐Ÿ”ผ0๐Ÿ—จ๏ธ0

(Replying to PARENT post)

I agree that interfaces like Datasette are a fantastic idea. But, it's not the same thing. Think of this more like the SQL standard. What would you do if SQL did not exist and there were no common ways to discuss querying databases?
๐Ÿ‘คtravisoliphant๐Ÿ•‘5y๐Ÿ”ผ0๐Ÿ—จ๏ธ0