JSON:API client and server implementation with the possibility of shared, fully type-safe repository interfaces. The server implementation allows implement JSON:API compliant endpoints. The client allows to access and test such endpoints.
Support for multiple formats. JSON:API for a normalized REST endpoint support complex object graphs. And a similar, but more basic REST endpoint for simpler applications. For more information see here.
Pattern for Sorting, filtering and pagination that can be reused across all resources in an application.
Mobile friendly. Fetch complex object graphs in a single request with JSON:API inclusions. Fetch partial objects with JSON:API sparse field sets. Use together with the popular OkHttp library on Android devices.
Atomically insert, update and delete multiple resources with JSON Patch. Operations thereby may be executed within the same transaction. Each operation may thereby separately perform validation and return a status and any potential errors.
Standardized and consistent error handling across your application. JSON:API thereby comes with many predefined fields. For example, source pointers allow user interfaces automatically associate validation errors with the fields causing them. Crnk comes with exception mappers for many "popular" exceptions and allows to add custom further mappers.
Not limited to JSON:API through a flexible, resource-oriented architecture. Serializers allow to implement other REST protocols or support for formats like CSV/Excel.
Traditional and (experimental) reactive programming API for responsive, resilient, elastic applications.
All batteries included: Setup the resource model of your application and implement the methods to access them. Crnk comes with defaults that takes care of rest from parameter parsing to exception handling. This allows you to focus on what matters: your application.