Skip to content

feroult/yawp

Repository files navigation

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

  • 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

  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:

  • 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.