Skip to content

Advanced REST-wrapper for your SQL-queries (actually not only SQL)

License

Notifications You must be signed in to change notification settings

croc-code/sql-boot

Build Status Build status codecov License codebeat badge Codacy Badge Docker Pulls Main distribution Join the chat at https://gitter.im/sqlboot/Lobby EO badge DevOps By Rultor.com Hits-of-Code Scc Count Badge Mentioned in Awesome database tools

Treat your database as Code

There are many awesome REST-wrappers for your Databases (e.g. PostgREST, pREST, sandman2 and many others), but how about REST-wrapper for your own SQL-queries?

The sql-boot tool is a REST-like wrapper for your own SQL-queries. No ETLs, no generated SQL, no "automagic" - sql-boot simply transform your own SQL-query to Web resources.

sql-boot recursively finds every *.sql files in your folders and start REST-like service and runs scripts against live databases in response to http requests.

Example

Save you SQL-query to big_cities.sql:

select a.airport_code as code
     , a.airport_name
     , a.city
     , a.coordinates
     , a.timezone
  from bookings.airports a
 where a.city in (select aa.city
                    from bookings.airports aa
                   group by aa.city
                  having count(*) > 1)
 order by
       a.city
     , a.airport_code

Now sql-boot is ready to receive http requests (without restarting and other actions).

Execute query on "master_db" database:

master_db/big_cities.sql

Execute query against all registered databases:

.*/big_cities.sql

Execute query against all registered databases with specified columns:

.*/big_cities.sql?select=code,endpoint

Execute query with ordering:

master_db/big_cities.sql?select=code&orderby=code-desc

Execute query with pagination:

master_db/big_cities.sql?select=code&orderby=code-desc&page=1,3

Self-documentation

sql-boot uses the OpenAPI standard to generate up-to-date documentation for APIs based your SQL-queries metadata. You can use a tool like Swagger-UI or Swagger-Editor to render interactive documentation (for demo requests) or generate client API against the live API server.

How to pronounce

It is pronounced "sequelboot" - https://translate.google.com/?source=osdd#en/en/sequelboot

Try with Docker and embedded (H2) demo db:

docker run -t -p 8007:8007 mgramin/sql-boot

Build from source:

git clone https://github.com/mgramin/sql-boot
cd sql-boot
mvn package