Future based Http request package for the Dart and browser. It is inspired by axios package in Node.js

Pub Version Coverage Status License

Install

# recommened install
dart pub add loreq

Usage

Import loreq in your file.

import 'package:loreq/loreq.dart';

void main() {
  loreq('https://example.com/cars?brand=bmw')
    .then((data) => print(data));
}

And now we got the bmw brands from /cars on our server and printed them on the terminal. How simple isn't it?

import 'package:loreq/loreq.dart';

void main() {
  loreq('https://example.com/cars', params: {'brand': 'bmw'})
    .then((data) => print(data));
}

Post, Put and Delete requests

When using the loreq function, the get request is automatically thrown if no method is specified. However, you can use other request types if you want.

Post

import 'package:loreq/loreq.dart';

void main() {
  loreq('https://example.com/users/new', params: {'id': 12345, 'username': 'JohnDoe'} method: 'POST')
    .then((data) => print(data));
}

Put

import 'package:loreq/loreq.dart';

void main() {
  loreq('https://example.com/password/change', params: {'id': 12345, 'newPassword': 'himom'} method: 'PUT')
    .then((data) => print(data));
}

Delete

import 'package:loreq/loreq.dart';

void main() {
  loreq('https://example.com/users/delete', params: {'id': 12345, 'password': 'himom'} method: 'DELETE')
    .then((data) => print(data));
}

Browser

If you want to use Loreq in normal Javascript, you don't need to convert your Dart code to Javascript code. Loreq already comes with a file named browser.js.

// ES6+
import loreq from 'packages/loreq/web/browser.mjs'
// CommonJS (for Node.js)
const loreq = require('packages/loreq/web/node.js')

loreq('https://example.com/packages?id=loreq')
  .then(data => console.log(data))

You can also use post, put and delete requests as you would in Dart.

// ES6+
import loreq from 'packages/loreq/web/browser.mjs'
// CommonJS (for Node.js)
const loreq = require('packages/loreq/web/node.js')

loreq('https://example.com/packages/new', { 
    params: { name: 'loreq', creatorToken: /* ... */},
    method: 'POST'
}).then(data => console.log(data))

Errors

You can access data['error'] to see if the response after a request returns an error.

import 'package:loreq/loreq.dart';

void main() {
 loreq('https://example.com/packages/aPackageForFake') // An incorrect request
    .then((data) {
      if (data['error']) {
        print('Something went wrong')
      } else {
        // ...
      }
    })
}

Example

See example for see usage example

Changelog

See changelog for see changelog

Libraries

delete
get
loreq
post
put