reson icon indicating copy to clipboard operation
reson copied to clipboard

Stateless REST interface to any MySQL database (a.k.a. PostgREST for MySQL)

ghit.me Codacy Badge

Reson

Bridging RElational databases to JSON based (REST) APIs.

Reson infers a REST API from any MySQL database schema. Basically a clone of PostgREST, but for MySQL.

Status of the project

The read API is done, the MySQL protocol JSON serializer works as of MySQL 5.6, but needs some love: for example DATETIME, DATE SQL types do work, but TIME doesn't. The reason is that - since Finagle MySQL connector is not yet updated to support MySQL 5.6 - I made it work with some workaround. But not entirely.

Contributors are welcome!

Read API

Please refer to the following bullet points to see what is implemented.

  • ✓ Get / -> all the tables and fields
  • ✓ Get /table_name -> select *
  • ✓ "Range" header -> SQL LIMIT x, y
  • ✓ select, order, in, like, comparators
  • testing

Write API

  • ✓ Unknown schema Json body -> SQL Insert
  • ✓ Insert Query (single object)
  • Insert Query (array of objects)
  • Insert Query (CSV)
  • ✓ Make it work with PATCH
  • ✓ Deletion Query

Authentication

  • JWT token validation w/secret