Skip to content

graphia/gias-api

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

GIAS API

This is a tiny API meant to accompany the GIAS Query Tool.

It is a proof of concept and prototype. It was intended to be built and deployed to the GOV.UK PAAS on a weekly basis for teams that need GIAS data to consume without having to handle the downloading/importing of the CSV.

The reason we're connecting via the socket is so we can keep the Docker image simple and not need to worry about PostgreSQL accounts when deploying.

Building

  1. ensure Crystal is installed
  2. install dependencies by running shards in the project root
  3. build the program with crystal build src/gias-api.cr
  4. run it with ./gias-api

Speed

With no optimisation it's fast out of the box.

time http get "localhost:3001/schools/100123"

HTTP/1.1 200 OK
Connection: keep-alive
Content-Type: application/json
Transfer-Encoding: chunked

{
    "urn": 100123,
    "name": "Eglinton Junior School"
}



________________________________________________________
Executed in    5.97 millis    fish           external
   usr time    1.08 millis    0.00 micros    1.08 millis
   sys time    3.83 millis  595.00 micros    3.23 millis

That's just one school, now with 49,514:

time http get "localhost:3001/schools" > /tmp/all.json

________________________________________________________
Executed in  303.79 millis    fish           external
   usr time    3.82 millis  694.00 micros    3.12 millis
   sys time   15.48 millis    0.00 micros   15.48 millis

About

Quick prototype of a GIAS API

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published