There is a version of the internet of APIs that I wish came to fruition, where it was a series of pipes of raw, live information that you could use to display interesting things about the world or ingest into your own software. Think a personal dashboard of easy to set up and reliable tidbits of information from all around the web.
APIs tend to be hyper specialized and actually far more about using the platform within the platform boundaries rather than interconnecting different APIs or interfaces and making a modular program.
I tried to build the "display live information" part of the idea but I found that it takes a really specific type of information to make it interesting and there are very few free APIs that provide that kind of thing. It needs to be "live" data in chronological order, and it needs to be about the world, not about some platform. For example "Number of astronauts currently in orbit" is fantastic and fun to show in a live graph. "Stars on my github repo" is kind of cool too, if you have a popular repository. There just aren't many free endpoints like that.
Aside: why do listicles need a sponsor? According to Github, 452 people have contributed to the list. Are all of them getting some kind of share of the sponsorship dollars?
I wondered why too, so I reverted the commit that added the add, pulled in some PRs, and pushed it here. I plan to keep it up to date if there's any interest.
https://notabug.org/anomie/public-apis
Thanks for doing something about this. I’ve bookmarked your fork of the project for future use. That ad was obnoxious and completely gratuitous – unlike the more tasteful Digital Ocean logo at the bottom of https://api.publicapis.org/ and the README page for https://github.com/davemachado/public-api In this case, it’s justifiable as it’s clear that Digital Ocean provide hosting for operating the API server.
I just went through the process of submitting the Canadian Football League's API and the process was structured enough - TravisCI tests to ensure a consistent documentation style - that I don't mind seeing the repo maintainer compensated for their efforts.
I'll acknowledge this is a pretty good zing! But I do see some difference between the two examples.
These Github listicles have a history of being collaborative efforts by developers, in order to crowdsource a high-quality source of information on some kind of topic. To have the maintainer turn around and monetize the work of others, AFTER those others already submitted their contributions, seems kinda dishonest to me. With Twitter, you (sorta) know what you're signing up for, given that you agree to EULA, privacy policy and whatnot in order to register an account.
I used to love the Web and APIs. Still think it’s great.
But I think it’s far superior to download software (Merkle trees) onto your own computer automatically and run it in a sandbox with your own data, while doing end to end encryption. That way you don’t worry if the API goes down or starts charging more or the database is hacked and you don’t have to jump through holps to get 1000 keys for each new project. Also you can resell your project to regular people who can host it themselves without them jumping through all those hoops. And finally, hosting should consist of provisioning space in a giant abstract cloud that holds encrypted data, no need to set up Linux instances or whatever.
If you get rid of "merkle tree" requirement, then you have just described database files hosted on github.
It does plenty of advantages -- it scales good and if done right, it is immune to hacking or site going down.
But it has some disadvantages as well -- the biggest is that client needs to do non-trivial, complex work, so you cannot just insert AJAX call onto your webpage. Also, you lose all control of data, so a competitor can trivially clone your service.
Well yeah, I am not talking about Capitalism in the traditional sense anymore (business builds a moat, provides a service to you and charges fees). I am talking about a collaboration economy (open source, science style). You may still be able to sell stuff, but not the stuff whose marginal cost to copy is zero. Information would be free. Asked who would generate it, the answer is increasingly “everyone”. News and Maps can be crowdsourced (see openstreetmap for example). The hard part is in the consensus model, ie data sets will be honeypots for people who want to alter the “truth as we know it” (like Stephen Colbert and Elephants on Wikipedia). I am not convinced that a for-profit top-down corporation is necessarily better for that than a flat, democratic crowd, provided we have interesting game mechanics built in (like high stakes challenges where you can lose a significant portion of your accumulated reputation if you don’t win by a large margin).
I definitely strongly prefer locally-stored data for a bunch of reasons, like the fact that nobody can analyze what queries you made on that data. But there is a lot of data that is regularly new and obviously has to be pulled from the internet regularly, such as news or weather data.
Isn’t sync/mirroring the proper tool for that? The data itself may of course be monetized by the various sources but if one goes down there can be others, as long as the protocol is resilient to that.
APIs tend to be hyper specialized and actually far more about using the platform within the platform boundaries rather than interconnecting different APIs or interfaces and making a modular program.
I tried to build the "display live information" part of the idea but I found that it takes a really specific type of information to make it interesting and there are very few free APIs that provide that kind of thing. It needs to be "live" data in chronological order, and it needs to be about the world, not about some platform. For example "Number of astronauts currently in orbit" is fantastic and fun to show in a live graph. "Stars on my github repo" is kind of cool too, if you have a popular repository. There just aren't many free endpoints like that.