-
Notifications
You must be signed in to change notification settings - Fork 547
Home
Rest.li is an open source REST framework for building robust, scalable RESTful architectures using type-safe bindings and asynchronous, non-blocking IO. Rest.li fills a niche for applying RESTful principals at scale with an end-to-end developer workflow for buildings REST APIs that promotes clean REST practices, uniform interface design and consistent data modeling.
- End-to-end framework for building RESTful APIs
- Approachable APIs for writing non-blocking client and server code using ParSeq
- Type-safe development using generated data and client bindings
- JAX-RS inspired annotation driven server side resource development
- Engineered and battle tested for high scalability and high availability
- Optional Dynamic Discovery subsystem adds client side load balancing and fault tolerance
- Backward compatibility checking to ensure all API changes are safe
- Support for batch operations, partial updates and projections
- Web UI for for browsing and searching a catelog of rest.li APIs.
[http://rest.li]
Discussion Group: Linkedin Rest.li Group Follow us on twitter: @rest_li Issue Tracking: github issue tracking
If you are not modifying the rest.li source code, you don't need to build rest.li. You can simply depend on the artifacts in the maven central repository. The current latest version in Maven Central is 1.15.2.
To build from source, please see this page.
- Promote uniform interfaces through consistent data modeling and REST conventions
- Seamlessly integrate a JSON serializable data layer including a data schema language and generated language bindings
- Provide published interface definitions, generated from server code
- Make calling services dead simple with generated type-safe client bindings
- Versioning with automated compatibility checking
- Simple asynchronous API
- Dynamic discovery with load balancing
- Java 1.6+
- Gradle 1.8+ or SBT 0.13.0+
Make sure to check out the various wiki pages as well!
-
Rest.li
- Getting Started
- Architecture Intro
- Server Framework
-
Client Framework
- Generated client request builders
- RestClient
- [Error Semantics] (wiki/Rest.li-User-Guide#error-semantics)
- Projections
- Projections in Java
- Partial Updates - How to create patches
- Dependency Injection incl. Guice & Spring integration
- Compression incl. snappy, deflate, gzip
- Validation
- Language Support
- Java - Native
- Scala
- Specifications
- Tools
- IDL generation
- Client binding generation
- Gradle build integration
- SBT build integration (provided in a separate github project)
- Data Schema and Templates
- Dynamic Discovery (D2)
- Request/Response (R2)
- Best Practices
- FAQs
- [Checking Out/Building] (wiki/Building-with-Rest.li)
- How to Contribute
Quick Access:
- Tutorials
- Dynamic Discovery
- Request Response API
-
Rest.li User Guide
- Rest.li Server
- Resources
- Resource Types
- Resource Methods
- Rest.li Client
- Projections
- Filters
- Wire Protocol
- Data Schemas
- Data
- Unstructured Data
- Tools
- FAQ