I think TFA mixes up the API style with tightly coupling interface to implementation.<p>The problems described are those of directly exposing an implementation as the API.<p>The interesting part of REST in this context is, IMHO, that you can have a database-y or filesystem-y <i>interface</i> that you can implement any way you like.<p>So yes: if you provide an API, think of the API in terms of the interface it should provide to the user. If that interface is CRUD-y/REST-y (and a lot are), by all means expose a REST API. Please still decouple it from the implementation, or at least make sure that you <i>can</i> decouple it when things start to drift.