jsonapi_client 0.2.1

  • README.md
  • Installing
  • Versions
  • 53


JSON API Client in Dartlang

Dartlang implementation of JSON API Client, adherent to JSON API specification 1.0.


Add jsonapi_client to your pubspec.yaml:

  jsonapi_client: "0.2.1"


Instantiate a client:

JSONAPIClient c = new JSONAPIClient();

then use it:

try {
  JSONAPIDocument d = await c.get(
} catch (err) {
  // the API did not return a valid JSON API Document

GET method

Used to retrieve a document containing a JSON API resource or a list of resources.

Future<JSONAPIDocument> get(String url, {List<String> includeModels, Map headers})

POST method

Used to create a document containing a JSON API resource.

Future<JSONAPIDocument> post(String url, String document, {List<String> includeModels, Map headers})

DELETE method

Used to delete a resource.

Future delete(String url, {Map headers})


You can test your application which uses JSONAPIClient by using the included MockJSONAPIClient class.

MockJSONAPIClient mockClient = new MockJSONAPIClient();

JSONAPIDocument mockDocument = new JSONAPIDocument({
  "data": {
      "id": "1",
      "type": "persons",
      "attributes": {
        "name": "Gianfranco",
        "surname": "Reppucci"

payload = '''
  "data": {
      "type": "persons",
      "attributes": {
        "name": "Gianfranco",
        "surname": "Reppucci"


mockClient.post('http://mockapi.test/persons', payload, includeModels: ['company'], headers: {'X-Test': 'Mock-Value'}); // will return mockDocument as output

// you can access the last request by using these mock client getters


All notable changes to this project will be documented in this file. This project adheres to Semantic Versioning.

[0.2.1] - 2016-07-07


  • Attributes requestUrl,requestPayload, requestIncludedModels, requestHeaders to MockJSONAPIClient class.

[0.2.0] - 2016-07-06


  • Class MockJSONAPIClient.

[0.0.1] - 2016-07-05

Initial version.

1. Depend on it

Add this to your package's pubspec.yaml file:

  jsonapi_client: "^0.2.1"

2. Install it

You can install packages from the command line:

with pub:

$ pub get

Alternatively, your editor might support pub get. Check the docs for your editor to learn more.

3. Import it

Now in your Dart code, you can use:

import 'package:jsonapi_client/jsonapi_client.dart';
Version Uploaded Documentation Archive
0.2.1 Jul 7, 2016 Go to the documentation of jsonapi_client 0.2.1 Download jsonapi_client 0.2.1 archive
0.2.0 Jul 6, 2016 Go to the documentation of jsonapi_client 0.2.0 Download jsonapi_client 0.2.0 archive
0.0.1 Jul 5, 2016 Go to the documentation of jsonapi_client 0.0.1 Download jsonapi_client 0.0.1 archive


We analyzed this package on Apr 9, 2018, and provided a score, details, and suggestions below. Analysis was completed with status completed using:

  • Dart: 2.0.0-dev.46.0
  • pana: 0.10.6


Describes how popular the package is relative to other packages. [more]
43 / 100
Code health derived from static analysis. [more]
90 / 100
Reflects how tidy and up-to-date the package is. [more]
23 / 100
Overall score:
Weighted score of the above. [more]
Learn more about scoring.


Detected platforms: web

Primary library: package:jsonapi_client/jsonapi_client.dart with components: html.


  • Fix analysis and formatting issues.

    Analysis or formatting checks reported 2 errors 5 hints.

    Strong-mode analysis of lib/src/error.dart failed with the following error:

    line: 125 col: 3
    Invalid override. The type of 'JSONAPIErrorList.[]=' ('(int, JSONAPIError) → void') isn't a subtype of 'List<dynamic>.[]=' ('(int, dynamic) → void').

    Strong-mode analysis of lib/src/resource.dart failed with the following error:

    line: 94 col: 3
    Invalid override. The type of 'JSONAPIResourceList.[]=' ('(int, JSONAPIResource) → void') isn't a subtype of 'List<dynamic>.[]=' ('(int, dynamic) → void').

    Similar analysis of the following files failed:

    • lib/src/client.dart (hint)
    • lib/src/mock_client.dart (hint)
  • The description is too short.

    Add more detail about the package, what it does and what is its target use case. Try to write at least 60 characters.

  • Package is pre-v1 release.

    While there is nothing inherently wrong with versions of 0.*.*, it usually means that the author is still experimenting with the general direction API.

  • Maintain an example.

    Create a short demo in the example/ directory to show how to use this package. Common file name patterns include: main.dart, example.dart or you could also use jsonapi_client.dart.


Package Constraint Resolved Available
Direct dependencies
Dart SDK >=1.13.0 <2.0.0
http ^0.11.3+7 0.11.3+16
test ^0.12.13+4 0.12.33
Transitive dependencies
analyzer 0.31.1 0.31.2-alpha.1
args 1.4.1
async 2.0.6
barback 0.15.2+15
boolean_selector 1.0.3
charcode 1.1.1
cli_util 0.1.2+1
collection 1.14.9
convert 2.0.1
crypto 2.0.2+1
csslib 0.14.1
front_end 0.1.0-alpha.9 0.1.0-alpha.11
glob 1.1.5
html 0.13.3
http_multi_server 2.0.4
http_parser 3.1.1
io 0.3.2+1
isolate 1.1.0 2.0.0
js 0.6.1
kernel 0.3.0-alpha.9 0.3.0-alpha.11
logging 0.11.3+1
matcher 0.12.1+4
meta 1.1.2
mime 0.9.6
multi_server_socket 1.0.1
node_preamble 1.4.0
package_config 1.0.3
package_resolver 1.0.2
path 1.5.1
plugin 0.2.0+2
pool 1.3.4
pub_semver 1.3.5
shelf 0.7.2
shelf_packages_handler 1.0.3
shelf_static 0.2.7
shelf_web_socket 0.2.2
source_map_stack_trace 1.1.4
source_maps 0.10.4
source_span 1.4.0
stack_trace 1.9.2
stream_channel 1.6.4
string_scanner 1.0.2
term_glyph 1.0.0
typed_data 1.1.5
utf 0.9.0+4
watcher 0.9.7+7
web_socket_channel 1.0.7
yaml 2.1.13