json_api 0.3.0 json_api: ^0.3.0 copied to clipboard
JSON:API v1.0 (http://jsonapi.org) Document, Client, and Server
Implementation of JSON:API v1.0 in Dart #
Warning! This is a work-in-progress. While at v0, the API is changing rapidly. #
Feature roadmap #
The features here are roughly ordered by priority. Feel free to open an issue if you want to add another feature.
Client
- ✅ Fetching single resources and resource collections
- ✅ Collection pagination
- ✅ Fetching relationships and related resources and collections
- ✅ Fetching single resources
- ✅ Creating resources
- ✅ Deleting resources
- ✅ Updating resource's attributes
- ✅ Updating resource's relationships
- ✅ Updating relationships
- ❌ Compound documents
- ❌ Related collection pagination
- ❌ Asynchronous processing
- ❌ Optional check for
Content-Type
header in incoming responses
Server
- ✅ Fetching single resources and resource collections
- ✅ Collection pagination
- ✅ Fetching relationships and related resources and collections
- ✅ Fetching single resources
- ✅ Creating resources
- ✅ Deleting resources
- ✅ Updating resource's attributes
- ✅ Updating resource's relationships
- ✅ Updating relationships
- ❌ Compound documents
- ❌ Sparse fieldsets
- ❌ Sorting, filtering
- ❌ Related collection pagination
- ❌ Asynchronous processing
- ❌ Optional check for
Content-Type
header in incoming requests - ❌ Support annotations in resource mappers (?)
Document
- ✅ Support relationship objects lacking the
data
member - ❌ Compound documents
- ❌ Support
meta
members - ❌ Support
jsonapi
members - ❌ Structural Validation including compound documents
- ❌ Naming Validation
- ❌ JSON:API v1.1 features
Usage #
In the VM:
import 'package:json_api/client.dart';
final client = JsonApiClient();
In a browser:
import 'package:json_api/client.dart';
import 'package:http/browser_client.dart';
final client = JsonApiClient(factory: () => BrowserClient());
For usage examples see the functional tests.