jaguar_resty 1.1.8 copy "jaguar_resty: ^1.1.8" to clipboard
jaguar_resty: ^1.1.8 copied to clipboard

outdatedDart 1 only

Build fluent functional Restful clients

example/jaguar_resty_example.dart

import 'dart:async';
import 'package:http/http.dart' as ht;
import 'package:jaguar_resty/jaguar_resty.dart' as resty;
import 'package:jaguar/jaguar.dart';

class Book {
  String id;

  String name;

  Book({this.id, this.name});

  static Book map(Map map) => new Book()..fromMap(map);

  Map toJson() => {
        'id': id,
        'name': name,
      };

  void fromMap(Map map) => this
    ..id = map['id']
    ..name = map['name'];

  String toString() => toJson().toString();
}

final books = <Book>[
  new Book(id: '1', name: 'Harry potter'),
  new Book(id: '2', name: 'Da Vinci code'),
  new Book(id: '3', name: 'Angels and deamons'),
];

Future serve() async {
  final server = new Jaguar(port: 8000)
    ..getJson(
        '/book/:id',
        (Context ctx) => books.firstWhere((b) => b.id == ctx.pathParams['id'],
            orElse: () => null))
    ..postJson('/book', (Context ctx) async {
      books.add(await ctx.req.bodyAsJson(convert: Book.map));
      return books;
    })
    ..log.onRecord.listen(print);
  await server.serve(logRequests: true);
}

Future client() async {
  print(await resty.get('/book/1').http('localhost:8000').fetch(Book.map));
  print(await resty
      .post('/book')
      .http('localhost:8000')
      .json(new Book(id: '4', name: 'Book4'))
      .fetchList(Book.map));
}

main() async {
  resty.globalClient = new ht.IOClient();
  await serve();
  await client();
}
0
likes
0
pub points
32%
popularity

Publisher

unverified uploader

Build fluent functional Restful clients

Repository (GitHub)
View/report issues

License

unknown (license)

Dependencies

async, client_cookie, collection, http, http_parser

More

Packages that depend on jaguar_resty