Skip to content

feroult/yawp

This branch is 1 commit ahead of master.

Folders and files

NameName
Last commit message
Last commit date
Oct 17, 2018
Jul 17, 2019
Jul 28, 2020
Jul 28, 2020
Jul 17, 2019
Oct 12, 2020
Jul 17, 2019
Nov 17, 2015
Aug 7, 2018
Oct 25, 2015
Jan 20, 2019
Jul 17, 2019

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.