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

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ed97c0a · Feb 14, 2020
Nov 15, 2019
Feb 14, 2020
May 23, 2017
May 30, 2019
Oct 21, 2019
Jun 15, 2019
Oct 18, 2019
May 29, 2018
Jun 15, 2019
Feb 4, 2020
Sep 2, 2017
Jan 9, 2020

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