sscarduzio / reson

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

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

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

About

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

License:MIT License


Languages

Language:Scala 100.0%