|
|
|
|
|
by al3xdm
4799 days ago
|
|
Hi Matthew, You suggested that the FBI could re-write the API request to be: 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? |
|
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.