larapi
TypeScript icon, indicating that this package has built-in type declarations

0.2.16 • Public • Published

Laravel API Client

The simple package for authorization with token and data cache

Install

npm i larapi

First step

you can create instance or use static methods for first configuration and for further use

const api = new API({
	host: 'https://my-host'
});
...
API.setHost('https://my-host');

To use typing - use new instanse

The first argument of the class takes the type of requests, and the second the type of the user

type TTodo = {
	id: number;
	userId: number;
	title: string;
	completed: boolean;
};

type TApiTodos = {
	success: {
		'todos': () => TTodo[],
		[path: `todos/${number}`]: (request: Omit<TTodo, 'id'>) => TTodo;
	},
	error: {
		message: string;
	}
};

const api = new API<TApiTodos>({
	host: 'https://jsonplaceholder.typicode.com/',
});
...

api.get({
	path: 'todos/1',
	success: (e) => {
		console.log(e.id);
	},
	error: (e) => {
		console.log(e);
	}
});

Authorization

token useds in the header Authorization: Bearer

api.setToken('token');
api.setUser({...object-user});

you can use method getUser or property user for get user object

api.getUser();
...
api.user;

Requests

Get

api.get({
  path: '/test',
  success: (e) => {
    console.log(e)
  }
});

Post

api.post({
  path: '/test',
  data: {
    message: 'hello world'
  }
  success: (e) => {
    console.log(e)
  }
});

Cache

for create simple cache use boolean true in the "cache" property

const request = api.get({
  path: '/test',
  cache: true,
  ...
});

if you need clear current cache - use method "clearCache"

request.clearCache();

or you can use method "updateCache" for update current cache data in the current request

first argument in the method is object updated data, and last argument is key field for search in the current cache, if you need update all data use null

request.updateCache({
  message: 'update this string'
}, null);

Readme

Keywords

Package Sidebar

Install

npm i larapi

Weekly Downloads

53

Version

0.2.16

License

MIT

Unpacked Size

157 kB

Total Files

20

Last publish

Collaborators

  • sergomorello