Swaroop C H

blog books about contact subscribe

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

18 Apr 2013

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 http://t.co/8r3ms1GZoo?

@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? http://t.co/c6W0508wgd

@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.

Comments

Scott Banwart's Blog › Distributed Weekly 203 says:

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

Feedback

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.