Dear MySQL, Please Include a REST Interface In Your Next Version

Dear MySQL,

I know you just got bought by Sun, and are now swimming in money and possibilities. Please continue this momentum by formalizing your connection to the Web by including a RESTful end point in your next version. The Web is where you grew up and matured, and it's time to give back.

The architecture wars are nearly over, and REST has proven time and again to be the dominant architectural style for Web applications. You, MySQL, need to expose your data via REST to promote interoperability across clients and further cement your place as one of the top databases for the Web.

This is low hanging fruit.

Your URL space is well defined, as you have databases, tables and views, rows, and columns. The HTTP methods (GET, PUT, POST, DELETE) map very well to your SQL DML methods of SELECT, INSERT, UPDATE, and DELETE.

I'd imagine your URL space to be something like:


  • /databases

  • /databases/NAME/tables

  • /databases/NAME/tables/NAME/rows

  • /databases/NAME/tables/NAME/rows/PK



Use Content Negotiation to return either XML or JSON. Use hypermedia to encapsulate the connections between rows. Use HTTP Basic Auth and plug in to your existing user management (use SSL for security.) Take advantage of your fondness for Memcached.

With CouchDB promoting a REST interface, any language that can speak JSON and HTTP can build a trivial client.

MySQL, the Web is where you flurished. Time to join the Web.

Sincerely,

Seth

Popular posts from this blog

Lists and arrays in Dart

Converting Array to List in Scala

Null-aware operators in Dart