How to design a great API
Suz, Amal, and Chris join Jerod to discuss what APIs are all about, share some APIs they admire, and lay out principles and practices we can all use in our APIs.
Suz, Amal, and Chris join Jerod to discuss what APIs are all about, share some APIs they admire, and lay out principles and practices we can all use in our APIs.
Darius Kazemi writing in Issue #14 of Increment magazine:
HTTP status codes are largely an accident of history. The people who came up with them didn’t plan on defining a numerical namespace that would last half a century or work its way into popular culture. You see this pattern over and over in the history of technology.
Because technology isn’t immune to historical contingency, it’s important for us as engineers to remember that long-lasting technical inflection points can occur at any time. Sometimes we know these decisions are important when we’re making them. Other times, they seem perfectly trivial.
Twitter has officially released its new API, aka version 2. Introduced with an astonishing video and proudly promoted as a rebuild “from the ground up to better support developers”, including business, academic researchers, students, and makers.
I was really excited to see the new opportunities that it brings. While still in an early access phase, I must say that I’m a bit disappointed so far…
Poodle’s features include:
- Register your web services and endpoints easily.
- Use variables in endpoints definitions.
- Painless debugging and interaction with APIs.
- Search web services and endpoints interactively.
- Edit services and endpoints easily (config is just a TOML file).
- Sync services via Gist automatically.
For years now I’ve been asking AI/ML experts when these powerful-yet-complicated tools will become available to average developers like you and me. It’s happening! Just look at how high-level this text generation code sample is:
import openai
prompt = """snipped for brevity's sake"""
response = openai.Completion.create(model="davinci",
prompt=prompt,
stop="\n",
temperature=0.9,
max_tokens=100)
They’re oftening all kinds of language tasks: semantic search, summarization, sentiment analysis, content generation, translation, and more. The API is still in beta and there’s a waitlist, but this is exciting news, nonetheless.
Use the source code to your heart’s desire or hop over to the deployed version and use the API itself (there is a free plan available) right here
Access data on COVID19 through an easy API for free. Build dashboards, mobile apps or integrate in to other applications.
Thanks to Johns Hopkins CSSE for making the data available.
You may have heard that the Smithsonian recently released millions of images in to the public domain. Well, it turns out they also have an open access API and a GitHub repo with over 11 million metadata records in JSON format. I’m sure some cool uses and mashups could make use of this data and images.
Did you know you can make a device vibrate via a webpage? Neither did we until we popped open Luigi De Rosa’s super cool repo that collects many of the lesser known things browsers can do in 2020.
On this episode we hang out on his list and discuss which APIs were surprises to us, which we think are the most useful, which we wish would die in a fire (sorta), and what you might get if you mash up a few of these APIs.
This is, effectively, an HTTP API on top of MaxMind’s free geoip-lite database. If you’re doing anything serious with ip-to-geolocation, I’d advise self-hosting the database, but for small side projects and the like, this is an easy way to get up and rolling.
Most of the time, web APIs are not functional requirements. They don’t add any value to the product we are building. They are just a necessary evil so the frontend can communicate with the backend. But is that really the case? Wouldn’t it be possible to get rid of these web APIs?
In response to this, Manuel built Liaison, which is still in alpha, but aims to seamlessly bridge the divide between frontend and backend without having to formalize an API between the two.
From reading the post, it appears to be akin to our old friend, RPC. If you are interested enough to dive into the code, he’s put together a RealWorld example which holds up quite well to the competition on a lines-of-code-to-implement basis.
You may have initially heard of Ballerina on episode #313 of The Changelog. Well, the “first cloud native programming language” has finally reached its milestone 1.0 release!
After more than 3 years of hard work by an incredible team, I am thrilled to announce the general availability of Ballerina 1.0!
Congrats to Paul and the team for powering through and shipping something they can be proud of! Check the announcement post for all the details of what “1.0” means for Ballerina.
Carmen Bourlon:
Lots of service worker tutorials out there show a reader how to set up a new service worker and cache files, but how can you cache API responses? This blog post shows you how to start caching your API responses dynamically, which is going to be important in any data-driven application.
Stop wasting time mocking APIs. MockIt gives you an interface to configure and create REAL mocked end points for your applications.
This is basically an API for the (excellent looking) Mermaid.
Panelists Mat Ryer, Johnny Boursiquot, Jaana B. Dogan, and Mark Bates discuss how humans build machine to machine integrations via APIs — the good, the bad, and the ugly — and how to give yourself the best chance of success.
When I first discovered that nine of my tests were failing due to a broken external API, my first thought was, “Man, maybe I should mock out those API calls so my tests don’t fail when the API breaks.” But then I thought about it a little harder…
This is why libraries such as VCR are so awesome.
As of March 14, 2019, Google Image Charts API is no longer in service. That’s a shame, because it was a convenient way to easily generate a chart image from a URL. The good news is an open source replacement is ready for service!
Manuel Vila:
What makes GraphQL so exciting is the ability to compose method calls, and Deepr is a way to achieve that and only that. Because everything else, we believe, would be better implemented somewhere else in the stack.
Deepr is being built by folks who’ve been using GraphQL for awhile, love it, and have some ideas about how things might be even better by changing some key decisions. Worth a look, for sure.
A majority of what you need to know about JAMstack on one page.
JAMstack is revolutionising the way we think about workflow by providing a simpler developer experience, better performance, lower cost and greater scalability.
This simple guide will help you understand why it exists and how to get started.
Jerod talked with Paul Fremantle, the CTO and Co-Founder of WSO2, about their new programming language, Ballerina — a cloud-native language which aims to make it easier to write microservices that integrate APIs. They talked about the creation of the language and how it was inspired by so many technologies, cloud native features like built-in container support, serverless-friendly, observability, and how it works with, or without, a service mesh — just to name a few.
Twitter is at it again making controversial changes restricting how the developer community can use their APIs to develop 3rd party Twitter clients. Sarah Perez reports on TechCrunch:
Twitter is breaking users’ favorite third-party Twitter clients like Tweetbot and Twitterific by shutting off APIs these apps relied on. Worse still, is that Twitter isn’t taking full responsibility for its decisions.
In a company email it shared today, Twitter cited “technical and business constraints” that it can no longer ignore as being the reason behind the APIs’ shutdown.
This change sparked the #BreakingMyTwitter hashtag
Get instant GraphQL APIs on any PostgreSQL database.
We are super thrilled to announce the launch of the Hasura GraphQL Engine, an open source product that gives you instant GraphQL APIs on Postgres. You can try it out here — it will take exactly 30 seconds to deploy to Heroku’s free tier (yes — we counted 😀).
Check out the open source repo on GitHub.
A new minimal, extensible, fast and productive framework for building HTTP APIs with Python.
Featuring request validation, dependency injection, functional middleware, and more.
John Resig and team at Khan Academy implemented a generic GraphQL platform and their development practices changed overnight. The benefits they saw were so substantial that he and Loren Sands-Ramshaw decided to write a book about it.
…we’re using GraphQL in more and more places: we are transitioning older pages over to use GraphQL and have a mandate in place that all new pages need to use GraphQL.
The benefits that we’ve reaped have been so substantial, even though it’s still early days. We’re writing new products faster, we’re able to rapidly iterate on designs, and we’re keeping our server implementation slim.
Wow, “REST APIs now feel quite antiquated…”
I look at how well it’s worked for us and read stories about how GraphQL has changed other organizations, and I can only think that GraphQL is going to dramatically change how we all build APIs going forward. REST APIs now feel quite antiquated by comparison.
Beta chapters of The GraphQL Guide are available now.