@amjs/ajax-adapter 0.1.3
Set up of AJAX request adapters
Installation
$ npm i @amjs/ajax-adapter
Usage
- Register your URL adapter:
const { AmjsAjaxAdpaterJSON } = require('@amjs/ajax-adapter');
class MyURLAdpater extends AmjsAjaxAdpaterJSON
{
/**
* @override
*/
async serialize(config = {}, service = {})
{
// apply into 'config' any API required change
await super.serialize(config, service);
}
/**
* @override
*/
async unserialize(response, service)
{
// do whatever API requires with response object
return await super.unserialize(response, service);
}
}
AmjsAjaxAdpaterJSON.register('Adapter::http://my-url', MyURLAdpater);
module.exports = MyURLAdpater;
- Use your URL adapter before/after fetching request:
async function doFetch()
{
const AmjsFactory = require('@amjs/factory');
const URL = 'https://my-url';
const adapter = AmjsFactory.create(`Adapter::${URL}`);
const request = {};
const service = {};
await adpater.serialize(request, service);
let response = await fetch(URL, request);
response = await adapter.unserialize(response.clone(), service);
console.log(response); // { data : { ... }} --> OK: 200 - 399
// { errors: [ ... ]} --> ERROR: 400 - 599
}
I suggest to use AmjsAjaxService
as long as previous operations are performed internally and has being tested out.