[![Build Status](https://travis-ci.org/okue/Haskyapi.svg?branch=master)](https://travis-ci.org/okue/Haskyapi) ## What is Haskyapi? Haskyapi is a HTTP server implemented in Haskell. ### Build ```sh $ stack build $ stack install $ haskyapi migrate $ haskyapi runserver --port 8080 --root . root: . listen on 8080 http://localhost:8080/ http://localhost:8080/index.html http://localhost:8080/hoge.md ``` or ```sh $ cabal build ``` ### Options - `-p, --port` : port number - `-r, --root` : root directory - `-h, --help` : help `setting.yml` is a configuration file for these options. ## How to use as web framework `app/Main.hs` in this repository is an example program using haskyapi as web framework. Here is a very simple example. ```hs module Main where import Web.Haskyapi.Console.Cli (haskyapi) import Web.Haskyapi.Header ( Api, ApiFunc, -- type of api functions Method(..), -- GET, POST, ... ContentType(..) -- Cplain, Cjson, ... ) routing :: [Api] routing = [ (GET, "/test", test, Cplain) ,(POST, "/test", test, Cplain) ] test :: ApiFunc test qry _ = return "This is GET." test qry _ = return "This is POST." main = haskyapi routing ``` ## TODO - [x] Open Markdown file - [ ] Use Database easily - [ ] Implement RESTful api easily - [ ] Automatic generator of api reference document - [ ] HTTPS ## Bash-completion `.haskyapi.bash` is a bash-completion setting file for **haskyapi** command. ## Now Haskyapi works at [okue.site:80](http://okue.site/) - [Simple TODO](http://ftodo.okue.site/) - [/markdown-page.md](http://okue.site/markdown-page.md) - [/api/title?url=https://github.com/okue/Haskyapi](http://okue.site/api/title?url=https://github.com/okue/Haskyapi)