hairy: A JSON REST API

[ deprecated, library, mit, program, web ] [ Propose Tags ]
Deprecated

Hairy is a JSON REST API.

Check out the readme for documentation.


[Skip to Readme]

Downloads

Maintainer's Corner

Package maintainers

For package maintainers and hackage trustees

Candidates

  • No Candidates
Versions [RSS] 0.1.0, 0.1.1, 0.1.2, 0.1.3
Change log CHANGELOG.md
Dependencies aeson (>=0.7 && <0.9), base (>=4 && <5), data-default (>=0.5 && <0.6), hairy, heroku (>=0.1 && <0.2), http-types (>=0.8 && <0.9), monad-logger (>=0.3 && <0.4), mtl (>=2 && <3), persistent (>=2 && <3), persistent-postgresql (>=2 && <3), persistent-template (>=2 && <3), scotty (>=0.9 && <0.10), text (>=1 && <2), time (>=1 && <2), transformers (>=0.3 && <0.5), wai (>=3 && <4), wai-extra (>=3 && <4), warp (>=3 && <4) [details]
License MIT
Copyright 2014 Taylor Fausak <taylor@fausak.me>
Author Taylor Fausak <taylor@fausak.me>
Maintainer Taylor Fausak <taylor@fausak.me>
Category Web
Home page https://github.com/tfausak/hairy
Bug tracker https://github.com/tfausak/hairy/issues
Source repo head: git clone git://github.com/tfausak/hairy.git
Uploaded by fozworth at 2014-10-16T00:41:33Z
Distributions
Reverse Dependencies 1 direct, 0 indirect [details]
Executables hairy
Downloads 3347 total (16 in the last 30 days)
Rating (no votes yet) [estimated by Bayesian average]
Your Rating
  • λ
  • λ
  • λ
Status Docs uploaded by user
Build status unknown [no reports yet]

Readme for hairy-0.1.3

[back to package description]

Hairy

Package version Build status Dependency status

Hairy is a JSON REST API built in Haskell. It uses Scotty to create a WAI application served by the Warp web server. The Aeson library handles encoding and decoding JSON, while Persistent manages the PostgreSQL database. Hairy features an Hspec test suite and Criterion benchmarks.

The entire project is meant to be easy to build, understand, and use. It doesn't really do anything useful, but it shows how to do anything at all. Take a look at the literate source to see how it all works.

Requirements

Hairy works best with the latest Haskell Platform, but it also supports GHC 7.8 and 7.6. PostgreSQL 9.1 or later is also required.

Installation

Add it to your Cabal file:

library
  build-depends:
    hairy ==0.1.*

Or install it manually:

$ cabal update
$ cabal install hairy-0.1.3

This package uses Semantic Versioning.

Setup

First create a database user for Hairy.

$ createuser --createdb postgres

Then create databases for each environment.

$ psql --username postgres --command 'CREATE DATABASE hairy_development'
$ psql --username postgres --command 'CREATE DATABASE hairy_production'
$ psql --username postgres --command 'CREATE DATABASE hairy_test'

Then just start the server!

$ hairy
# => http://localhost:3000

Configuration

Hairy can be configured through environment variables.

To configure the environment, use the SCOTTY_ENV environment variable. Possible environments include Development, Production, and Test.

$ env SCOTTY_ENV=Production hairy

To configure the port, use the PORT environment variable.

$ env PORT=8080 hairy

To configure the database, use the DATABASE_URL environment variable.

$ env DATABASE_URL=postgres://postgres:postgres@localhost:5432/hairy_development hairy