Skip to content

Sample JSON APIs with sqlite3 crud operations using Yesod library. Initial structure has been built using stack init template command

License

Notifications You must be signed in to change notification settings

subhodi/haskell-yesod-rest-server

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

HASKELL REST-SERVER BOILERPLATE

Sample JSON APIs with sqlite3 crud operations using Yesod library.

Directory structure

Dir Information
app Build and deploy files
config Database table and route configurations
src Request Handlers and database migration files
static *ignore/ Template static files
test test cases

Clone

git clone https://github.com/subhodi/haskell-yesod-rest-server.git
cd haskell-rest-boilerplate
stack install
stack build
stack run

Adding new API endpoint

yesod add-handler

Troubleshooting

  1. package.yaml vs cabal file issue: Delete .cabal from the root directory and run stack build and stack run before starting dev server
  2. Database migration manual intervention required. The unsafe actions are prefixed by '***' below issue: Delete .sqlite3 file from root direcotry and start dev server

Development

Start a development server with:

stack exec -- yesod devel

As your code changes, your site will be automatically recompiled and redeployed to localhost.

Tests

stack test --flag web-boilerplate-haskell:library-only --flag web-boilerplate-haskell:dev

(Because yesod devel passes the library-only and dev flags, matching those flags means you don't need to recompile between tests and development, and it disables optimization to speed up your test compile times).

Haskell Setup

  1. If you haven't already, install Stack
    • On POSIX systems, this is usually curl -sSL https://get.haskellstack.org/ | sh
  2. Install the yesod command line tool: stack install yesod-bin --install-ghc
  3. Build libraries: stack build

If you have trouble, refer to the Yesod Quickstart guide for additional detail.

Documentation

  • Read the Yesod Book online for free
  • Check Stackage for documentation on the packages in your LTS Haskell version, or search it using Hoogle. Tip: Your LTS version is in your stack.yaml file.
  • For local documentation, use:
    • stack haddock --open to generate Haddock documentation for your dependencies, and open that documentation in a browser
    • stack hoogle <function, module or type signature> to generate a Hoogle database and search for your query
  • The Yesod cookbook has sample code for various needs

Getting Help

About

Sample JSON APIs with sqlite3 crud operations using Yesod library. Initial structure has been built using stack init template command

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published