haskyapi-0.0.0.2: README.md
<img src="https://raw.githubusercontent.com/okue/Haskyapi/master/html/img/logo.png" width="60%">
[](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)