Постройте удобный клиент к серверному api. Библиотека использует подход "цепочки вызывов" для организации прозрачного запроса. Авторизация доступна по токену.
- jQuery for ajax.
var github = ApiClient('https://api.github.com', {
hooks: {
headers: {
Accept: 'application/vnd.github.v3+json',
Authorization: 'token 8fbfc540f1ed1417083c70a990b4db3c9aa86efe'
}
},
unauthorizedCallback: function(){} // Вызывается всякий раз, когда код ответа от сервера 401
});
github.read(); // GET https://api.github.com
github.add('user'); // /user
github.add('users'); // /users
github.users.add('repos'); // /users/repos
github.user.read(); // GET /user
github.users('archangel-irk').repos.read(); // GET /users/archangel-irk/repos
github.users('archangel-irk').repos.read({ sort: 'pushed' }); // GET /users/archangel-irk/repos?sort=pushedgithub.add('search', {
searchMethod: function(){
console.log( 'search::searchMethod' );
}
});
github.search.add('users', {
usersMethod: function(){
this.parent.searchMethod();
}
});
github.search.users.usersMethod(); // search::searchMethodСначала опишем самый верхний уровень.
var api = new ApiClient( url, options ) - функция-конструктор апи клиента, но также используется как обычный объект с методами.
url - адрес к апи, может быть относительным или полным.
options - будет полностью скопирован методом $.extend в объект апи.
Базовые методы для отправки запросов (все они возвращают jsXHR).
api._request( method, url, data, headers ) - отправить кастомный ajax запрос.
api._request( settings ) - отправить кастомный ajax запрос, передав любые настройки.
Для удобства есть алиасы create read update delete patch
api.create( settings, doneCallback ) - отправить кастомный post запрос.
Тепепь поговорим о апи клиенте, который возвращает функция-конструктор ApiClient().
api.add( resourceName, base, mixin ) - добавить ресурс к апи клиенту.
У апи клиента для отправки запросов есть методы _request( method, url, data, headers ) и
.read( headers, doneCallback ) т.к. другие методы (post, delete и т.д.) просто не нужны для корня апи.
И немного о самих ресурсах.
Resource - это функция со свойствами и методами, позволяющая делать запросы к ресурсам апи.
Как мы уже знаем, чтобы добавить ресурс к апи, нужно просто вызвать метод .add( resourceName ) у апи клиента.
Теперь посмотрим что же есть в самих ресурсах:
resourceName - свойство с именем ресурса, который по умолчанию совпадает с url ресурса.
url - сам url, по умолчанию совпадает с именем ресурса.
.constructUrl() - строим url для отправки запроса.
.add( resourceName, base, mixin ) - добавить новый ресурс к уже существующему русурсу.
._request( method, headers ) - отправить кастомный запрос на ресурс с заданным методом и заголовками.
И методы create read update delete patch служат только для отправки запросов:
.read( headers, doneCallback ) - отправить get запрос.
- Кэширование и работа со storage
- Добавить плагин notifications из cf.js
- Сделать тесты (можно смотреть на https://github.com/tj/supertest)
- Добавить свою репу как одно из решений в вопрос http://stackoverflow.com/questions/921942/javascript-rest-client