3.14.1 • Published 2 years ago

@aofl/api-request v3.14.1

Weekly downloads
288
License
MIT
Repository
github
Last release
2 years ago

@aofl/api-request

A module for making api calls easier. Key features include caching responses and request/response formatters.

Caching is implemented using @aofl/cache-manager and uses MemoryCache. @aofl/api-request caches the promises created by fetch api.

Request/response formatting refers to constructing a request payload and parsing the response payload. A formatter object should implement pack() and unpack() properties. pack() is to construct the request payload and unpack() is used to parse the response. Any number of formatters can be added to apiRequestInstance using the addFromatter() method. E.g. GetFormatter, PostFormatter, CorsFormatter, FileUploadFormatter, GoogleMapsFormatter, ....

Api Documentation

Examples

Installation

npm i -S @aofl/api-request

Usage

import {ApiRequest} from '@aofl/api-request';

class PostFormatter {
  static pack(payload) {
    const headers = new Headers();
    const body = new FormData();

    if (typeof payload !== 'undefined') {
      body.append('arguments', JSON.stringify(payload));
    }

    return {
      method: 'POST',
      headers,
      body,
      mode: 'cors',
      credentials: 'include'
    };
  }

  static unpack(response) {
    return response.json()
    .then((data) => {
      if (data.status !== 'success') {
        return Promise.reject(data);
      }
      return data;
    });
  }
}

const apiRequestInstance = new ApiRequest();
apiRequestInstance.addFormatter('post', PostFormatter);

apiRequestInstance.request('https://example.org/', {}, 'post', true, 'sample-namespace')
.then((jsonResponse) => {
})
.catch((jsonResponse) => {
});
3.14.1

2 years ago

3.14.0

2 years ago

4.0.0-alpha.45

2 years ago

4.0.0-alpha.44

2 years ago

4.0.0-alpha.17

3 years ago

4.0.0-alpha.16

3 years ago

4.0.0-alpha.15

3 years ago

4.0.0-alpha.19

3 years ago

4.0.0-alpha.18

3 years ago

4.0.0-alpha.39

3 years ago

4.0.0-alpha.38

3 years ago

4.0.0-alpha.37

3 years ago

4.0.0-alpha.36

3 years ago

4.0.0-alpha.31

3 years ago

4.0.0-alpha.30

3 years ago

4.0.0-alpha.35

3 years ago

4.0.0-alpha.34

3 years ago

4.0.0-alpha.33

3 years ago

4.0.0-alpha.32

3 years ago

4.0.0-alpha.28

3 years ago

4.0.0-alpha.27

3 years ago

4.0.0-alpha.26

3 years ago

4.0.0-alpha.25

3 years ago

4.0.0-alpha.29

3 years ago

4.0.0-alpha.20

3 years ago

4.0.0-alpha.24

3 years ago

4.0.0-alpha.23

3 years ago

4.0.0-alpha.22

3 years ago

4.0.0-alpha.21

3 years ago

4.0.0-alpha.42

3 years ago

4.0.0-alpha.41

3 years ago

4.0.0-alpha.40

3 years ago

4.0.0-alpha.43

3 years ago

4.0.0-alpha.13

3 years ago

3.13.1

3 years ago

3.13.0

3 years ago

4.0.0-alpha.11

3 years ago

4.0.0-alpha.10

3 years ago

4.0.0-alpha.9

3 years ago

3.12.1

3 years ago

3.12.0

3 years ago

3.9.0

4 years ago

3.10.0

4 years ago

3.8.0

4 years ago

3.8.1

4 years ago

3.9.0-alpha.0

4 years ago

3.6.1

4 years ago

3.5.0

4 years ago

3.5.0-beta.20

4 years ago

3.5.0-beta.22

4 years ago

3.5.0-beta.21

4 years ago

3.5.0-beta.19

4 years ago

3.5.0-beta.18

4 years ago

3.5.0-beta.15

4 years ago

3.5.0-beta.14

4 years ago

3.5.0-beta.17

4 years ago

3.5.0-beta.16

4 years ago

3.5.0-beta.11

4 years ago

3.5.0-beta.13

4 years ago

3.5.0-beta.12

4 years ago

3.5.0-beta.10

4 years ago

3.5.0-beta.9

4 years ago

3.5.0-beta.8

4 years ago

3.5.0-beta.3

4 years ago

3.5.0-beta.4

4 years ago

3.5.0-beta.2

4 years ago

3.5.0-beta.7

4 years ago

3.5.0-beta.5

4 years ago

3.5.0-beta.6

4 years ago

3.5.0-beta.1

4 years ago

3.3.0

4 years ago

3.2.2-alpha.3

4 years ago

3.2.2-alpha.2

4 years ago

3.2.1

4 years ago

3.2.0

4 years ago

3.1.0

4 years ago

3.0.0

4 years ago

3.0.0-beta.49

4 years ago

3.0.0-beta.48

4 years ago

3.0.0-beta.47

4 years ago

3.0.0-beta.46

4 years ago

3.0.0-beta.42

4 years ago

3.0.0-beta.41

4 years ago

3.0.0-beta.40

4 years ago

3.0.0-alpha.12

5 years ago

3.0.0-beta.38

5 years ago

3.0.0-beta.37

5 years ago

3.0.0-beta.36

5 years ago

3.0.0-beta.35

5 years ago

3.0.0-beta.32

5 years ago

3.0.0-beta.30

5 years ago

3.0.0-beta.28

5 years ago

3.0.0-beta.27

5 years ago

3.0.0-beta.26

5 years ago

3.0.0-beta.25

5 years ago

3.0.0-beta.24

5 years ago

3.0.0-beta.23

5 years ago

3.0.0-beta.22

5 years ago

3.0.0-beta.16

5 years ago

3.0.0-beta.15

5 years ago

3.0.0-beta.14

5 years ago

3.0.0-beta.13

5 years ago

3.0.0-beta.12

5 years ago

3.0.0-beta.11

5 years ago

3.0.0-beta.9

5 years ago

3.0.0-beta.8

5 years ago

3.0.0-beta.6

5 years ago

3.0.0-beta.5

5 years ago

3.0.0-alpha.11

5 years ago

3.0.0-alpha.9

5 years ago

3.0.0-alpha.5

5 years ago

3.0.0-alpha.0

5 years ago

3.0.0-0

5 years ago

2.0.0

5 years ago

2.0.0-alpha.17

5 years ago

2.0.0-alpha.16

5 years ago

2.0.0-alpha.5

5 years ago

2.0.0-alpha.1

5 years ago

1.5.0-alpha.2

5 years ago

1.4.1

5 years ago

1.4.0

5 years ago

1.3.0

5 years ago

1.2.3

5 years ago

1.2.1

5 years ago

1.2.0

5 years ago

1.1.2

6 years ago

1.1.0

6 years ago

1.0.1

6 years ago

1.0.0

6 years ago

1.0.0-beta.28.1

6 years ago

1.0.0-beta.28

6 years ago

1.0.0-beta.27.1

6 years ago

1.0.0-beta.27

6 years ago

1.0.0-beta.26

6 years ago

1.0.0-beta.25

6 years ago

1.0.0-beta.23

6 years ago

1.0.0-beta.22

6 years ago

1.0.0-beta.21

6 years ago

1.0.0-beta.20

6 years ago

1.0.0-beta.5

6 years ago

1.0.0-beta.4

6 years ago

1.0.0-beta.3

6 years ago

1.0.0-beta.2

6 years ago

1.0.0-beta.1

6 years ago