json_api_document 0.1.1 copy "json_api_document: ^0.1.1" to clipboard
json_api_document: ^0.1.1 copied to clipboard

discontinued
outdated

JSON API (or jsonapi, see https://jsonapi.org) implementation in Dart2. Builds JSON API Documents according to the standard.

example/main.dart

import 'dart:convert';

import 'package:json_api_document/json_api_document.dart';

final dan = Resource('people', '9',
    attributes: {
      'first-name': 'Dan',
      'last-name': 'Gebhardt',
      'twitter': 'dgeb'
    },
    self: Link('http://example.com/people/9'));

final firstComment = Resource('comments', '5',
    attributes: {'body': 'First!'},
    relationships: {'author': ToOne(Identifier('people', '2'))},
    self: Link('http://example.com/comments/5'));

final secondComment = Resource('comments', '12',
    attributes: {'body': 'I like XML better'},
    relationships: {'author': ToOne(dan.toIdentifier())},
    self: Link('http://example.com/comments/12'));

final article = Resource(
  'articles',
  '1',
  self: Link('http://example.com/articles/1'),
  attributes: {'title': 'JSON API paints my bikeshed!'},
  relationships: {
    'author': ToOne(
      dan.toIdentifier(),
      self: Link('http://example.com/articles/1/relationships/author'),
      related: Link('http://example.com/articles/1/author'),
    ),
    'comments': ToMany(
        [firstComment.toIdentifier(), secondComment.toIdentifier()],
        self: Link('http://example.com/articles/1/relationships/comments'),
        related: Link('http://example.com/articles/1/comments'))
  },
);

final doc = DataDocument.fromResourceList([article],
    self: Link('http://example.com/articles'),
    next: Link('http://example.com/articles?page[offset]=2'),
    last: Link('http://example.com/articles?page[offset]=10'),
    included: [dan, firstComment, secondComment]);

void main() {
  print(json.encode(doc));
}
0
likes
0
pub points
0%
popularity

Publisher

unverified uploader

JSON API (or jsonapi, see https://jsonapi.org) implementation in Dart2. Builds JSON API Documents according to the standard.

Repository (GitHub)
View/report issues

License

unknown (LICENSE)

More

Packages that depend on json_api_document