Rest.li is a REST+JSON framework for building robust, scalable service architectures using dynamic discovery and simple asynchronous APIs.
Pull request Compare This branch is 1260 commits behind linkedin:master.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
build_script
d2-int-test
d2
data-avro-1_6
data-avro
data-transform
data
degrader
example-standalone-app
generator-test
generator
gradle-plugins
gradle/wrapper
li-jersey-uri
pegasus-common
r2-int-test
r2-jetty
r2-perf-test
r2-sample
r2
restli-client
restli-common
restli-contrib-spring
restli-docgen
restli-example-api
restli-example-client
restli-example-server
restli-extras
restli-int-test-api
restli-int-test-client
restli-int-test-server
restli-int-test
restli-server-standalone
restli-server
restli-tools
test-util
tools
.gitignore
.reviewboardrc
CHANGELOG
LICENSE.TXT
README.md
build.gradle
checkout-tag
defaultEnvironment.gradle
gradle.properties
gradlew
gradlew.bat
release-version
settings.gradle

README.md

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