feroult / yawp

Kotlin/Java API framework for Google Appengine
http://yawp.io
MIT License
131 stars 19 forks source link
api appengine cloud gcp java javascript nodejs

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

Features

Server

Client

Guides

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 \
        -Dlang=kotlin            
  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

    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()  
  5. 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:

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.