Simple, flexible and easy api service that wraps axios
API Core Service is service to send requests to API and manage their hooks with advanced configurable and extensible class. The class can be extended for modular services and main project based service.
This package can be used both in server and client side.
Using npm:
$ npm install api-core-service --save
You need to extend api core service to create your own module service.
import ApiCoreService from 'api-core-service';
class AuthService extends ApiCoreService {
async login(payload) {
this.url = 'auth/login';
this.payload = payload;
return this.post();
}
async me() {
this.url = 'me';
return this.get();
}
}
const result = await new AuthService().login({ username: 'ahmetonurslmz', password: 123456 });
import ApiCoreService from 'api-core-service';
class AuthService extends ApiCoreService {
async login(payload) {
this.url = 'auth/login'; // url is endpoint that comes after your base url
this.payload = payload; // payload is body data
this.params = {}; // params object is query params
return this.post(); // your method of endpoint
}
async me() {
this.url = 'me';
return this.get();
}
}
Api core service uses 'API_URL' environment variable as a default.
If you desire to change it, you can extend Api core service and set different variable name.
import ApiCoreService from 'api-core-service';
class MyApiCoreService extends ApiCoreService {
constructor() {
super();
this.setApiType('VUE_APP_API_URL');
}
}
You should use your new class to create module service like auth that we have mentioned above by extending it.
You can also change api url environment variable in method before request.
import ApiCoreService from 'api-core-service';
class AuthService extends ApiCoreService {
async login(payload) {
this.setApiType('VUE_APP_ANOTHER_API_URL');
this.url = 'auth/login';
this.payload = payload;
return this.post();
}
}
Api core service uses token that you stored in session storage that stands in browser. You can specify session's name with APP_TOKEN_NAME environment variable.
You can also change environment variable name that keeps name of session in your browser's session storage.
import ApiCoreService from 'api-core-service';
class MyApiCoreService extends ApiCoreService {
constructor() {
super();
this.setAuthorizationTokenName('VUE_APP_TOKEN_NAME');
}
}
You can also change way of getting your token in our api core service by overriding our method.
import ApiCoreService from 'api-core-service';
class MyApiCoreService extends ApiCoreService {
getAuthorizationToken() {
return 'MY_SPECIAL_TOKEN';
}
}