Tech - Why is Database Layer as a REST API not common

Posted by Swaroop C H on April 18, 2013 Filed under: architecture, clojure, django, python, rest, tech

We have "database APIs" such as abstraction layers over multiple SQL databases and ORMs. But why not take it to the next step and make it a REST API like any other network call that we can make?

Database as a REST API

Database as a REST API

Advantages would be: Did we just sort-of reinvent Datomic?

Of course, this is not a new idea at all, take restSQL as an example - my question is why is this not talked about more often?

Do most frameworks support this? If not, why not? If so, why don't most frameworks don't talk about such a use case in their documentation? If I use Django, I'll start writing the models and use South to create migrations, and that's that. If I have to reuse those model, from say, Java, then you're on your own. The point is that, by default, Django (or Rails) doesn't encourage you to do such a thing. If you go for a lighter framework such as Flask, then this becomes easier because the ORM is anyway not part of the framework.

Is this concept felt needed only in a polyglot case (multiple database systems, multiple programming languages)?

P.S. Also read Stevey's Google Platforms rant.

Update on [2013-04-28 Sun]: Also see the very useful tech talk Designing a Beautiful REST+JSON API.

Twitter Comments

@hitezh says:

@swaroopch What about

@swaroopch says:

@hitezh I just read their docs, there are good ideas to be picked from OData but it is not what I was looking for.

@rplevy says:

@alanpeabody I didn't realize anyone considered this uncommon. Call it the Darker Matter architecture pattern?

@alanpeabody says:

@rplevy I think it is an ever more popular concept. With JS MVC + Native Mobile apps more and more your Web App is just a DB API w/ rules.

@agoodno says:

@planetclojure Because you need a layer which applies biz logic to the result set, unless it's simple or you push biz logic into the db.


Scott Banwart's Blog › Distributed Weekly 203 says:

[...] Why is “Database Layer as a REST API” not common? [...]


There's no comment box, but please do email me or tweet me your thoughts and criticisms, and I will publish the relevant ones here.