Если вам нужно использовать API в NodeJS одно из сервисов и не хочется каждый раз писать один и тот же запрос только с разными параметрами много раз. В этом случае лучше написать отдельный пакет, как это сделать можно прочитать в этом посте.
Для примера мы возьмем EasyWay API. Это сервис для отслеживания актуальных данных о маршрутах и маршрутках доступный в нескольких странах.
Писать наш пакет буду в c9.io. Но вы можете выбрать любой другой вариант в котором есть возможность создавать и выполнять NodeJS проекты.
Создадим package.json и заполним нужными данными.
{
"name": "node_eway",
"version": "0.0.1",
"description": "Api Wraper for Eway.",
"main": "index.js",
"repository": "",
"author": "Edik Goryach <gorachedik96@gmail.com>",
"dependencies": {
"urlencode": "latest",
"request": "latest"
}
}
Теперь подключим наши пакеты и создадим конструктор для нашего обьекта в index.js
var request = require('request');
var urlencode = require('urlencode');
const APIURL = 'https://api.eway.in.ua/?';
//создание объекта
var Eway = function (login, pass) {
this.login = login;
this.pass = pass;
}
Напишем первый метод для нашего объекта:
Eway.prototype.get = function (method, params, callback){
request({
method: 'GET',
url: APIURL + 'login=' + this.login +'&password=' + this.pass + '&function=' + method +'&' + params,
headers: {
'Content-Type': 'application/json',
}
}, function (err, response, body) {
if (err) {
callback('err');
return console.error('Error:', err);
}
callback(JSON.parse(body))
});
}
Создадим test.js и попробуем вызвать конструктор и наш метод
//подключаем index.js
var Eway = require('./index.js');
var EwayLib = new Lafka('Your login', 'Your pass');
EwayLib.get('cities.GetRoutesList', 'city=lviv', function(data) {
console.log(data);
return data;
});
Вот таким способом можно организовать обертку для Api с помощью callback.
Для примера мы возьмем EasyWay API. Это сервис для отслеживания актуальных данных о маршрутах и маршрутках доступный в нескольких странах.
Писать наш пакет буду в c9.io. Но вы можете выбрать любой другой вариант в котором есть возможность создавать и выполнять NodeJS проекты.
Создадим package.json и заполним нужными данными.
{
"name": "node_eway",
"version": "0.0.1",
"description": "Api Wraper for Eway.",
"main": "index.js",
"repository": "",
"author": "Edik Goryach <gorachedik96@gmail.com>",
"dependencies": {
"urlencode": "latest",
"request": "latest"
}
}
Теперь подключим наши пакеты и создадим конструктор для нашего обьекта в index.js
var request = require('request');
var urlencode = require('urlencode');
const APIURL = 'https://api.eway.in.ua/?';
//создание объекта
var Eway = function (login, pass) {
this.login = login;
this.pass = pass;
}
Напишем первый метод для нашего объекта:
Eway.prototype.get = function (method, params, callback){
request({
method: 'GET',
url: APIURL + 'login=' + this.login +'&password=' + this.pass + '&function=' + method +'&' + params,
headers: {
'Content-Type': 'application/json',
}
}, function (err, response, body) {
if (err) {
callback('err');
return console.error('Error:', err);
}
callback(JSON.parse(body))
});
}
Создадим test.js и попробуем вызвать конструктор и наш метод
//подключаем index.js
var Eway = require('./index.js');
var EwayLib = new Lafka('Your login', 'Your pass');
EwayLib.get('cities.GetRoutesList', 'city=lviv', function(data) {
console.log(data);
return data;
});
Вот таким способом можно организовать обертку для Api с помощью callback.