A Kotlin/Java API framework for Google Appengine
Any help is appreciated! Comments, suggestions, issues, PR's! Give us a star to help!
Features
Server
- Scaffolding
- Model centric
- CRUD Routes
- Query Routes
- Custom Routes
- Cache System
- Transformers
- Security Shields
- Lifecycle Hooks
- Asynchronous Pipes
- Java or Kotlin
- App Engine or Postgres
Client
- Fluent API
- Node or Web
- Promises
- Class extension
Guides
Complete YAWP! Guides.
Getting Started
-
At the command prompt, create a new YAWP! Kotlin application:
$ mvn archetype:generate \ -DarchetypeGroupId=io.yawp \ -DarchetypeArtifactId=yawp \ -DarchetypeVersion=LATEST \ -DgroupId=yawpapp \ -DartifactId=yawpapp \ -Dversion=1.0-SNAPSHOT \ -Dlang=kotlin
-
Change directory to
yawpapp
and start the yawp development server:$ cd yawpapp $ mvn yawp:devserver
-
Using a browser, go to
http://localhost:8080/api
to check if everything is OK. -
Using a scaffolder, create a simple endpoint model:
$ mvn yawp:endpoint -Dmodel=person
Output:
@Endpoint(path = "/people") class Person(@Id var id: IdRef<Person>)
Try it:
$ curl http://localhost:8080/api/people
From Javascript:
$ npm install yawp --save
class Person extends yawp('/people') { save() { console.log('saving...'); return super.save(); } } const person = new Person({name: 'Janes'}); person.save()
-
Follow the guidelines to start developing your API:
Contributing
Everyone willing to contribute with YAWP! is welcome. To start developing you will need an environment with:
- JDK 1.8+
- Maven 3.3+
- PostgreSQL 9.4+
- phantomjs 2+
For postgres, you need to create a database/user with access from your Unix user (you need to be able to run psql with no args). A simple tutorial for Arch can be found here.
Phantomjs can be installed from pacman on Arch.
Then follow the travis-ci build script to get your build working.
License
YAWP! is released under the MIT license.