jsonapi_client 0.2.1

  • README.md
  • CHANGELOG.md
  • Installing
  • Versions
  • 44

CircleCI

JSON API Client in Dartlang

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

Installation

Add jsonapi_client to your pubspec.yaml:

dependencies:
  jsonapi_client: "0.2.1"

Usage

Instantiate a client:

JSONAPIClient c = new JSONAPIClient();

then use it:

try {
  JSONAPIDocument d = await c.get(
      'http://api.url/aModel/1',
      includeModels:['anotherModel']);
} 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})

Tests

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.setOutput(mockDocument);

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
mockClient.requestUrl
mockClient.requestPayload
mockClient.requestIncludedModels
mockClient.requestHeaders

CHANGELOG

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

[0.2.1] - 2016-07-07

Added

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

[0.2.0] - 2016-07-06

Added

  • Class MockJSONAPIClient.

[0.0.1] - 2016-07-05

Initial version.

1. Depend on it

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


dependencies:
  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

Analysis

This feature is new.
We welcome feedback.

We analyzed this package, and provided a score, details, and suggestions below.

  • tool failures on Dec 6, 2017
  • Dart: 2.0.0-dev.8.0
  • pana: 0.7.3+1

Scores

Popularity:
Describes how popular the package is relative to other packages. [more]
37
Health:
Code health derived from static analysis. [more]
62
Maintenance:
Reflects how tidy and up-to-date the package is. [more]
37
Overall score:
Weighted score of the above. [more]
44

Platforms

Detected platforms:

Error(s) prevent platform classification.

Suggestions

  • Fix lib/src/resource.dart.

    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').

  • Fix lib/src/error.dart.

    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').

Dependencies

Package Constraint Resolved Available
Direct dependencies
http ^0.11.3+7 0.11.3+16
test ^0.12.13+4 0.12.29
Transitive dependencies
analyzer 0.30.0+4 0.31.0-alpha.2
args 1.2.0
async 1.13.3 2.0.1
barback 0.15.2+13
boolean_selector 1.0.2
charcode 1.1.1
cli_util 0.1.2+1
collection 1.14.3
convert 2.0.1
crypto 2.0.2+1
csslib 0.14.1
front_end 0.1.0-alpha.4.1 0.1.0-alpha.7
glob 1.1.5
html 0.13.2
http_multi_server 2.0.4
http_parser 3.1.1
io 0.3.1
isolate 1.1.0
js 0.6.1
kernel 0.3.0-alpha.1.1 0.3.0-alpha.4
logging 0.11.3+1
matcher 0.12.1+4
meta 1.1.2
mime 0.9.4
multi_server_socket 1.0.0
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.3
pub_semver 1.3.2
shelf 0.7.1
shelf_packages_handler 1.0.3
shelf_static 0.2.6
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.1
stream_channel 1.6.2
string_scanner 1.0.2
term_glyph 1.0.0
typed_data 1.1.5
utf 0.9.0+3
watcher 0.9.7+4
web_socket_channel 1.0.6
yaml 2.1.13