client library
Provides JSON:API client for Flutter, browsers and vm.
There are two clients implementation provided by this library.
The first one, Client, is the most flexible but low level. It operates
generic Request and Response
objects and performs basic operations
such as JSON conversion and error handling. It is agnostic to the document
structure and accepts any target URIs.
By default, the DisposableHandler
is used which internally creates
a new instance of Dart built-in HTTP client for each request and then
disposes it. If you want more control of the underlying http client,
one option can be to use the PersistentHandler
. To use another HTTP client,
such as dio implement your own wrapper.
The codec
performs JSON encoding/decoding. The default implementation
uses native dart:convert
. Provide your own PayloadCodec
if you need
fine-grained control over JSON conversion.
The RoutingClient is a wrapper over Client containing methods representing the most common use cases of resource fetching and manipulation. It can conveniently construct and parse JSON:API documents and URIs. The RoutingClient should be your default choice.
Classes
- Client
- A basic JSON:API client.
- CollectionFetched
- RelatedResourceFetched
- A related resource response.
-
RelationshipFetched<
R extends Relationship> - A response to a relationship fetch request.
-
RelationshipUpdated<
R extends Relationship> - A response to a relationship request.
- Request
- A generic JSON:API request.
- ResourceCreated
- A response to a new resource creation request. This is always a "201 Created" response.
- ResourceFetched
- A response to fetch a primary resource request
- ResourceUpdated
- RoutingClient
- A routing JSON:API client
Exceptions / Errors
- RequestFailure
- Thrown when the server returns a non-successful response.