Saturday, 2 January 2016

Haskell REST API on Google App Engine

Overview

The following describes an example project that creates a REST API using Haskell as a GAE custom runtime component.

The component is built using Scotty a lightweight web framework and makes use of the Aeson library to marshal to and from Json.

The API describes a simple TODO application with a list of items held in memory and is an extension of work by Sean Hess.

All the code for the project may be found at: https://github.com/andywhardy/haskell-gae


Prerequisites

  • To run locally you must have Haskell and Stack installed on your operating system.  
  • To upload to GCP you must have editor rights to a GCP project and have the gcloud tool installed and available on your path.
For further information on installing Haskell or Stack for your OS please see:

https://www.haskell.org/platform/
http://docs.haskellstack.org/en/stable/README.html

The following may be useful info for setting up GCP:

https://cloud.google.com/compute/docs/projects
https://cloud.google.com/sdk/gcloud/

Guide


Clone project from git

git clone https://github.com/andywhardy/haskell-gae

Setup

cd haskell-gae
stack setup

Build

stack build

Run

stack exec haskell-gae

Local test

http://localhost:8080/items
http://localhost:8080/items/1
http://localhost:8080/items/2

Deploy

gcloud preview app deploy --promote --version test-1 app.yaml

GAE test

https://haskell-gae-rest-dot-<YOUR_PROJECT_ID>.appspot.com/items

7 comments:

  1. Great Article. Thank you for sharing! Really an awesome post for every one.

    IEEE Final Year projects Project Centers in Chennai are consistently sought after. Final Year Students Projects take a shot at them to improve their aptitudes, while specialists like the enjoyment in interfering with innovation. For experts, it's an alternate ball game through and through. Smaller than expected IEEE Final Year project centers ground for all fragments of CSE & IT engineers hoping to assemble. Final Year Project Domains for IT It gives you tips and rules that is progressively critical to consider while choosing any final year project point.

    Spring Framework has already made serious inroads as an integrated technology stack for building user-facing applications. Spring Framework Corporate TRaining the authors explore the idea of using Java in Big Data platforms.
    Specifically, Spring Framework provides various tasks are geared around preparing data for further analysis and visualization. Spring Training in Chennai

    ReplyDelete