You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+12-12Lines changed: 12 additions & 12 deletions
Original file line number
Diff line number
Diff line change
@@ -6,23 +6,23 @@ This project takes its name from the acronym Create/Read/Update/Delete. It provi
6
6
The Crud API supports data-oriented interactions based on generic _Resources_, which encapsulate state and build upon the [Observable](https://github.com/Netflix/RxJava/blob/master/rxjava-core/src/main/java/rx/Observable.java) abstraction from [RxJava](https://github.com/Netflix/RxJava/). The design emphasizes generality, safety and concurrency.
7
7
8
8
*_Generality_: The available interactions consist of the conventional “CRUD”: Create, Read, Update, and Delete. These have an HTTP-like flare—set (i.e. PUT), get, update (i.e. POST), delete—though the types in this package do _not_ depend on HTTP as an implementation technology. These operations should also be familiar to anyone who has worked with other data-oriented APIs, such as SQL/JDBC.
9
-
*_Safety_: The types of resources are statically type-safe, configured by means of generic type parameters. And because not all resources support all operations, the operations are composable, defined in separate interfaces designed to work together. For example, a resource that supports reading and writing, but not deletion, would implement [ReadableResource](https://github.com/rickbw/crud-api/blob/master/src/main/java/rickbw/crud/ReadableResource.java) and [WritableResource](https://github.com/rickbw/crud-api/blob/master/src/main/java/rickbw/crud/WritableResource.java) but not [DeletableResource](https://github.com/rickbw/crud-api/blob/master/src/main/java/rickbw/crud/DeletableResource.java).
9
+
*_Safety_: The types of resources are statically type-safe, configured by means of generic type parameters. And because not all resources support all operations, the operations are composable, defined in separate interfaces designed to work together. For example, a resource that supports reading and writing, but not deletion, would implement [ReadableResource](https://github.com/rickbw/crud-api/blob/master/src/main/java/rickbw/crud/core/ReadableResource.java) and [WritableResource](https://github.com/rickbw/crud-api/blob/master/src/main/java/rickbw/crud/core/WritableResource.java) but not [DeletableResource](https://github.com/rickbw/crud-api/blob/master/src/main/java/rickbw/crud/core/DeletableResource.java).
10
10
*_Concurrency_: The API encourages asynchronous implementations. It encapsulates asynchrony using RxJava’s `Observable` class. This encapsulation means that applications can work with asynchronous implementations just as easily as synchronous ones, and cross-cutting behaviors like retries can be transparently composed as needed.
11
11
12
12
13
13
API Overview
14
14
------------
15
-
There are two primary abstractions in the API: `Resources` and `ResourceProviders`. The former encapsulate the I/O operations on state, and hence uses a reactive style. There are four interfaces derived from [Resource](https://github.com/rickbw/crud-api/blob/master/src/main/java/rickbw/crud/Resource.java), one for each CRUD operation:
The latter abstraction, `ResourceProvider`, provides local (i.e. assumed-cheap) navigation among `Resources`. This navigation uses a key-value lookup idiom, where keys are generic and may be simple—e.g. a URL—or arbitrarily complex—e.g. a database query—depending on the underlying data-access technology. There are four derived [ResourceProvider](https://github.com/rickbw/crud-api/blob/master/src/main/java/rickbw/crud/ResourceProvider.java) interfaces:
There are two primary abstractions in the API: `Resources` and `ResourceProviders`. The former encapsulate the I/O operations on state, and hence uses a reactive style. There are four interfaces derived from [Resource](https://github.com/rickbw/crud-api/blob/master/src/main/java/rickbw/crud/core/Resource.java), one for each CRUD operation:
The latter abstraction, `ResourceProvider`, provides local (i.e. assumed-cheap) navigation among `Resources`. This navigation uses a key-value lookup idiom, where keys are generic and may be simple—e.g. a URL—or arbitrarily complex—e.g. a database query—depending on the underlying data-access technology. There are four derived [ResourceProvider](https://github.com/rickbw/crud-api/blob/master/src/main/java/rickbw/crud/core/ResourceProvider.java) interfaces:
0 commit comments