A Kotlin/Java API framework for Google Appengine

Any help is appreciated! Comments, suggestions, issues, PR's! Give us a star to help!

Build Status Maven Central





Complete YAWP! Guides.

Getting Started

  1. 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 \
  2. Change directory to yawpapp and start the yawp development server:

    $ cd yawpapp
    $ mvn yawp:devserver
  3. Using a browser, go to http://localhost:8080/api to check if everything is OK.

  4. Using a scaffolder, create a simple endpoint model:

    $ mvn yawp:endpoint -Dmodel=person


    @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() {
            return super.save();
    const person = new Person({name: 'Janes'});
  5. Follow the guidelines to start developing your API:


Everyone willing to contribute with YAWP! is welcome. To start developing you will need an environment with:

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.


YAWP! is released under the MIT license.