Skip to content

gitter-badger/yawp

 
 

Repository files navigation

YAWP! Framework

A very simple and elegant domain specific language / framework in Java that helps you to create amazing APIs.

Build Status Maven Central

Introduction

YAWP!'s main purpose is to help developers to easily create meaningful APIs to back their REST based applications. It natively supports and abstracts the Google Appengine Platform, so you can bootstrap your API very quickly with a free (to start) auto-scalable environment. Later, if you change your mind, there are no lock-ins with Google and you can move freely to any cloud platform you want without losing data or having to rewrite your code.

You create your POJOs and YAWP!

Guides

Here you can find the complete YAWP! Guides.

Getting Started

  1. At the command prompt, create a new YAWP! API 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
    

    Output:

    @Endpoint(path = "/people")
    public class Person {
        @Id
        IdRef<Person> id;
    }    

    Try it:

     $ curl http://localhost:8080/api/people
    
  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.7+
  • Maven 3.3+
  • PostgreSQL 9.4+

Then follow the travis-ci build script to get your build working.

IRC

Feel free to contact the developers at the IRC channel #yawp at chat.freenode.net

License

YAWP! is released under the MIT license.

About

Simple, Elegant and Powerful APIs

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Java 89.9%
  • JavaScript 8.5%
  • Other 1.6%