/rest.li

Rest.li is a REST+JSON framework for building robust, scalable service architectures using dynamic discovery and simple asynchronous APIs.

Primary LanguageJavaOtherNOASSERTION

What is Rest.li?

Rest.li is a REST+JSON framework for building robust, scalable service architectures using dynamic discovery and simple asynchronous APIs.

Rest.li fills a niche for building RESTful service architectures at scale, offering a developer workflow for defining data and REST APIs that promotes uniform interfaces, consistent data modeling, type-safety, and compatibility checked API evolution.

No, Really. What is Rest.li?

Oh, you want to see some code, don't you?

Basically, rest.li is a framework where you define schema's for your data:

{
  "name" : "Greeting", "namespace" : "com.example.greetings", "type" : "record",
  "fields" : [
    { "name" : "message", "type" : "string" }
  ]
}

Write servers:

@RestLiCollection(name = "greetings")
class GreetingsResource extends CollectionResourceTemplate<Long, Greeting> {
  public Greeting get(Long key) {
    return new Greeting().setMessage("Good morning!");
  }
}

And then write clients:

Response<Greeting> response = restClient.sendRequest(new GreetingsBuilders.get().id(1L).build()).get();
System.out.println(response.getEntity().getMessage());

And get all the benefits of a robust, scalable REST+JSON framework.

Full Documentation

See our wiki for full documentation and examples.

Quickstart Guides and Examples