An open API service indexing awesome lists of open source software.

https://github.com/lilactown/graphql-demo

GraphQL demo using Clojure + Pedestal + Lacinia
https://github.com/lilactown/graphql-demo

clojure graphql graphql-demo lacinia pedestal

Last synced: 3 months ago
JSON representation

GraphQL demo using Clojure + Pedestal + Lacinia

Awesome Lists containing this project

README

          

# graphql-demo

An example GraphQL service written in Clojure using [Pedestal](http://pedestal.io/) and [Lacinia](https://github.com/walmartlabs/lacinia).

## Getting Started

1. Start the application: `lein run`
2. Go to [localhost:8080](http://localhost:8080/) to see: `Hello World!`
3. Read your app's source code at src/graphql_demo/service.clj. Explore the docs of functions
that define routes and responses.
4. Run your app's tests with `lein test`. Read the tests at test/graphql_demo/service_test.clj.
5. Learn more! See the [Links section below](#links).

## Configuration

To configure logging see config/logback.xml. By default, the app logs to stdout and logs/.
To learn more about configuring Logback, read its [documentation](http://logback.qos.ch/documentation.html).

## Developing your service

1. Start a new REPL: `lein repl`
2. Start your service in dev-mode: `(def dev-serv (run-dev))`
3. Connect your editor to the running REPL session.
Re-evaluated code will be seen immediately in the service.

### [Docker](https://www.docker.com/) container support

1. Build an uberjar of your service: `lein uberjar`
2. Build a Docker image: `sudo docker build -t graphql-demo .`
3. Run your Docker image: `docker run -p 8080:8080 graphql-demo`

### [OSv](http://osv.io/) unikernel support with [Capstan](http://osv.io/capstan/)

1. Build and run your image: `capstan run -f "8080:8080"`

Once the image it built, it's cached. To delete the image and build a new one:

1. `capstan rmi graphql-demo; capstan build`

## Links
* [Other examples](https://github.com/pedestal/samples)