Axios wrapper
Envoltorio Axios
Esta biblioteca proporciona un práctico envoltorio para Axios, añadiendo la cancelación automática de solicitudes simultáneas. a sus características.
Instalar
npm install --save-dev @gravity-ui/axios-wrapper
API HTTP
Parámetros del constructor
configuración [opcional]
La configuración de una axios instancia.
colector [opcional]
La configuración del recopilador de solicitudes es un objeto:
{
"collectErrors": 10,
"collectRequests": 10
}
Métodos básicos
Wrapper proporciona métodos http get, ,,, head. put post delete
Métodos get y head tienen la firma (url, params, options); put, post, mientras que el delete método
tiene (url, data, params, options) firma.
El params argumento representa los parámetros de la cadena de consulta, mientras que options es una configuración de solicitud.
Actualmente se admiten 4 configuraciones de solicitud:
concurrentId (string): identificador de solicitud opcionalcollectRequest (bool): indicador opcional, que indica si la solicitud debe ser de registro (predeterminadotrue)requestConfig (object): configuración opcional con los parámetros de solicitud personalizadosheaders (object): objeto opcional con encabezados de solicitud personalizados.timeout (number): tiempo de espera de solicitud opcionalonDownloadProgress (function): llamada opcional para procesar el progreso de la descarga del archivo
Cabeceras
El setDefaultHeader({name (string), value (string), methods (array)}) método permite añadir un valor predeterminado
encabezado de solicitud.
Los argumentos name y value son obligatorios, el argumento opcional methods especifica todos los métodos que los obtienen
encabezados predeterminados (de forma predeterminada, todos los métodos obtendrán esos encabezados).
CSRF
El setCSRFToken método permite especificar el token CSRF, que se agregará a todos, y put post delete
solicitudes.
Solicitudes simultáneas
A veces es mejor cancelar la solicitud en vuelo si sus resultados ya no son necesarios. Para hacer esto
sucede, uno debe pasar para solicitar options la concurrentId identificación. Cuando la próxima solicitud con el mismo
concurrentId Si ocurre, la solicitud anterior con ese identificador se cancelará.
También se cancela una solicitud manualmente invocando el cancelRequest(concurrentId) método.
Recopilación de solicitudes
Es posible configurar la recopilación de solicitudes en el almacenamiento local mediante la collector opción. Almacena
todas las solicitudes y errores por separado. Lo siguiente apiInstance mantendrá las 10 últimas solicitudes (ambas exitosas)
y no) y 10 últimas solicitudes erróneas.
const apiInstance = new API({
collector: {
collectErrors: 10,
collectRequests: 10,
},
});
Para obtener las solicitudes guardadas, hay que invocar el getCollectedRequests método que devuelve el objeto
{errors: [...], requests: [...]}.
Uso
El uso sugerido es subclasificar la AxiosWrapper clase base:
export class API extends AxiosWrapper {
getProjects() {
return this.get('/projects');
}
getSensors({project, selectors}) {
return this.get(`/projects/${project}/sensors`, {selectors, pageSize: 200});
}
getNames({project, selectors}) {
return this.get(`/projects/${project}/sensors/names`, {selectors});
}
getLabels({project, names, selectors}) {
return this.get(`/projects/${project}/sensors/labels`, {names, selectors});
}
}
Cuando el baseURL parámetro se pase a la axios configuración, se le añadirán todos los nombres de ruta solicitados.
const apiInstance = new API({
config: {
baseURL: '/api/v2',
},
});