Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/feroult/yawp
Kotlin/Java API framework for Google Appengine
https://github.com/feroult/yawp
api appengine cloud gcp java javascript nodejs
Last synced: 14 days ago
JSON representation
Kotlin/Java API framework for Google Appengine
- Host: GitHub
- URL: https://github.com/feroult/yawp
- Owner: feroult
- License: mit
- Created: 2014-03-17T16:53:00.000Z (over 10 years ago)
- Default Branch: master
- Last Pushed: 2023-07-21T16:58:49.000Z (over 1 year ago)
- Last Synced: 2024-10-16T02:31:39.028Z (29 days ago)
- Topics: api, appengine, cloud, gcp, java, javascript, nodejs
- Language: Java
- Homepage: http://yawp.io
- Size: 5.4 MB
- Stars: 132
- Watchers: 17
- Forks: 20
- Open Issues: 53
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
_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](https://travis-ci.org/feroult/yawp.svg)](https://travis-ci.org/feroult/yawp)
[![Maven Central](https://maven-badges.herokuapp.com/maven-central/io.yawp/yawp/badge.svg)](https://maven-badges.herokuapp.com/maven-central/io.yawp/yawp/)## 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](http://yawp.io/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=kotlin2. Change directory to `yawpapp` and start the yawp development server:
$ cd yawpapp
$ mvn yawp:devserver3. 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:**
``` kotlin
@Endpoint(path = "/people")
class Person(@Id
var id: IdRef)
```
**Try it:**$ curl http://localhost:8080/api/people
**From Javascript:**
$ npm install yawp --save
``` javascript
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:
* [Your First API](http://yawp.io/guides/getting-started/your-first-api)
* [The Javascript Client](http://yawp.io/guides/tutorials/the-javascript-client)
* [Todo App List Tutorial](http://yawp.io/guides/tutorials/todo-list-app)
* [API Documentation](http://yawp.io/guides/api/models)## 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](http://www.netarky.com/programming/arch_linux/Arch_Linux_PostgreSQL_database_setup.html).
Phantomjs can be installed from [pacman](https://www.archlinux.org/packages/community/x86_64/phantomjs/) on Arch.
Then follow the [travis-ci build script](../master/.travis.yml) to get your build working.
## License
YAWP! is released under the [MIT license](https://opensource.org/licenses/MIT).