mfetch

0.2.27 • Public • Published

mfetch

mfetch will provide you with a strong ability to request resource management, at the same time, you can use it very simply

Installation

You can install with npm.

npm install mfetch

Usage

The mfetch not only supports any request method, but also supports jsonp request, and it also supports request/response global interceptor.

Fetch something in sample way


import {fetch} from 'mfetch'

fetch('http://xxxx',{
    params:{
        arg:'This is arg'
    }
}) .then(res=>res.json())
.then(res=>console.log(res))

or

fetch({
    url:'http://xxxx',
    params:{
        arg:'This is arg'
    }
}).then(res=>res.json())
.then(res=>console.log(res))


Fetch something with complex parameters


import {fetch} from 'mfetch'

const complex_params = {
    param1:'param1',
    param2:'param2'
}

fetch({
    url:'http://xxxx',
    params:{
        arg:'This is arg',
        obj:JSON.stringify(complex_params)
    }
}).then(res=>res.json())
.then(res=>console.log(res))


Fetch jsonp

import {fetch} from 'mfetch'

fetch({
    url:'http://xxxx',
    method:'jsonp',
    params:{
        arg:'This is arg'
    }
}).then(res=>res.json())
.then(res=>console.log(res))


send request with cookie

CORS request

import {fetch} from 'mfetch'

fetch({
    url:'http://xxxx',
    method:'jsonp',
    params:{
        arg:'This is arg'
    },
    credentials:'include'
}).then(res=>res.json())
.then(res=>console.log(res))

same domain

import {fetch} from 'mfetch'

fetch({
    url:'http://xxxx',
    method:'jsonp',
    params:{
        arg:'This is arg'
    },
    credentials:'same-origin'
}).then(res=>res.json())
.then(res=>console.log(res))

Fetch FormData


import {fetch} from 'mfetch'


fetch({
    url:'http://xxxx',
    method:'post',
    headers:{
        'Content-Type':'multipart/formdata;charset=utf8'
    },
    params:{
        arg:'This is arg'
    }
}).then(res=>res.json())
.then(res=>console.log(res))


Use interceptor to intercept requests

import {fetch,interceptor} from 'mfetch'


interceptor({
    request(options){
        options.url += '&aaa=bbb'
        return options         // You can solve the asynchronous problem by returning the Promise object.
    },
    response(response){
        return response.json()
    }
})



fetch({
    url:'http://xxxx',
    params:{
        arg:'This is arg'
    }
}).then(res=>console.log(res))


Use the resource API to abstract your requests

import {resource} from 'mfetch'

const getSiteInfo = resource('http://xxxxx',{/** options **/})
const getUserInfo = resource({
    url:'http://xxxx',
    method:'jsonp'
})

const getCombineInfo = resource((data)=>{
    return getSiteInfo(data)
        .then(res=>res.json())
        .then(res=>getUserInfo(res.data))
})

getCombineInfo({
    params:'params'
}).then(res=>res.json())
.then((res)=>{
    console.log(res)
})


Use URI Template(RFC6570)


import {resource} from 'mfetch'

const getSiteInfo = resource('/{id}?xxx',{uriTemplate:true})

getSiteInfo({
    id:12333
})
.then(res=>res.json())
.then(()=>{


})


API

fetch

fetch(url : String,[options : Object]) : Promise

fetch(options : Object) : Promise

resource

resource(url : String,[options : Object]) : Promise

resource(options : Object) :Promise

resource(callback : Function) :Promise

interceptor

interceptor(Interceptors : Object)

extension

extension([plugins,...])

License

MIT

Readme

Keywords

none

Package Sidebar

Install

npm i mfetch

Weekly Downloads

94

Version

0.2.27

License

none

Unpacked Size

156 kB

Total Files

54

Last publish

Collaborators

  • janrywang