4 ms·
Hi Matthew, You suggested that the FBI could re-write the API request to be: http://api.fbi.gov/wanted/most http://api.fbi.gov/wanted/most Which would return
by al3xdm 13y ago
Hi Matthew,
You suggested that the FBI could re-write the API request to be: http://api.fbi.gov/wanted/most http://api.fbi.gov/wanted/most
Which would return a set of known fields. You then go on to say:
"After complaints that “notoriety” is a made-up number, the FBI can hide the field; the intent-driven design is unchanged."
This suggests that the API author is free to add, remove or rename fields in the response without bumping version as it's part of the "intent-driven design".
In response to your second point, I then don't understand what the real purpose of intent-driven API design is. The only different appears to be that you given more RESTful URLs than using loads of query parameters?
- mfenniak 13y agoAh, thank-you for pointing that out. That's definitely a mistake in the article. I've amended point #4 with another possible approach. Intent-driven design reduces the fragility of your API, gives you a wider variety of changes that you can make to your API that are backwards compatible. If it's done perfectly, and your software solves the same business problem tomorrow as it does today, then you will never need to increment your API version number. The reality is that it will never be designed perfectly, and requirements are never that stable, so having a versioned API is a practical and prudent choice.