Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/navicore/akka-http-phantom.g8
A giter8 generator for a working Akka HTTP API server persisting to Cassandra with the Phantom DSL
https://github.com/navicore/akka-http-phantom.g8
akka akka-http cassandra giter8 giter8-template phantom-dsl
Last synced: about 1 month ago
JSON representation
A giter8 generator for a working Akka HTTP API server persisting to Cassandra with the Phantom DSL
- Host: GitHub
- URL: https://github.com/navicore/akka-http-phantom.g8
- Owner: navicore
- License: other
- Created: 2017-11-08T16:02:15.000Z (about 7 years ago)
- Default Branch: master
- Last Pushed: 2022-11-25T23:57:21.000Z (about 2 years ago)
- Last Synced: 2024-11-06T19:48:01.412Z (3 months ago)
- Topics: akka, akka-http, cassandra, giter8, giter8-template, phantom-dsl
- Language: Scala
- Size: 119 KB
- Stars: 0
- Watchers: 3
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE.txt
Awesome Lists containing this project
README
[![Codacy Badge](https://api.codacy.com/project/badge/Grade/1bec982da37d4df0a375d183f2b97dd6)](https://www.codacy.com/app/navicore/akka-http-phantom.g8?utm_source=github.com&utm_medium=referral&utm_content=navicore/akka-http-phantom.g8&utm_campaign=Badge_Grade)
[![Build Status](https://travis-ci.org/navicore/akka-http-phantom.g8.svg?branch=master)](https://travis-ci.org/navicore/akka-http-phantom.g8)A [g8] Template for an Akka HTTP API Server persisting objects with [Phantom] for [Cassandra]
---## PREREQ
* sbt >= 13.16
## USAGE
G8 will prompt you for details like your project name and package name
In a terminal shell, enter:
```console
sbt new navicore/akka-http-phantom.g8
````cd` into the resulting directory and `sbt run`
See generated the README.md for how to build, configure, and connect to Cassandra
#### Notes About The Generated Example
* The initial example entity is stored denormalized
* primary key for one model is a v4 UUID
* primary key for a second model is `name` and clustering key is `datetime`
* CRUD works - see generated examples dir
* basic time series lookups (last 'n' occurrences of 'name')
* could be modified to be an append-only event-sourcing backend![Graphiz](docs/denorm.png)
[Phantom]: https://github.com/outworkers/phantom
[Cassandra]: http://cassandra.apache.org/
[g8]: http://www.foundweekends.org/giter8/
[g8 setup]: http://www.foundweekends.org/giter8/setup.html## DEVELOPING
While changing the template, test using something like:
```console
sbt new file:///Users/navicore/git/navicore/akka-http-phantom.g8
```