Эм насколько я понял этих любителей придумать новые слова restful, куемпампул и прочих друзей:
Там как идет - через запрос AJAX отсылается в заголовках (headers) тип запроса - их там аж несколько штук - всякие GET POST PUT DELETE и тд - вишь ли пацанам было лень отправить одну переменную type - и они такие придумали RESTful сервисы - совершили переворот в науке.
А вместе с ними такими запросами научились кидаться мобильные телефоны, приложения разные и вообще как они тостеры не научили кидаться ими. А твое апи дескать такое все из себя апи, что ему плевать - кто спросил - мобилка, чайник или ноутбук - он всегда что-то сделает. Но они ясен болт спросили, передав обычный массив - JSON данные, и поэтому для чего было создавать новые типы запросов кроме GET и POST - опять же тайна.
По факту - обычный например если с PHP-бекендом - контроллер, или даже просто файл ajax_user_add.php, который обрабатывает входящий массив и тип запроса и
что-то делает - назад выдает сообщение, данные и статус ошибки. Они поспешили назвать это API и теперь это знаешь как на собеседовании звучит! Без этого на работу не берут, вотЪ.
Это твой яваскрипт назад подхватывает и с ним что-то уже делает.
Что в этом всем RESTful-ьного - ну имена запросов, название еще, а что еще надо, чтобы технологию придумать?
Наверное я дилетант просто, поэтому не понимаю всей гениальной концепции этой идеи.
file.phpempty($_REQUEST['foo']) && ajax_abort('Foo not defined');
// do something
ajax_complete();
function ajax_complete($msg = null, $data = null) {
$response['status'] = 1;
!empty($msg) && $response['msg'] = $msg;
!empty($data) && $response['data'] = $data;
exit(json_encode($response));
}
function ajax_abort($msg = null, $data = null) {
$response['status'] = 0;
!empty($msg) && $response['msg'] = $msg;
!empty($data) && $response['data'] = $data;
exit(json_encode($response));
}
file.js(function ($, App) {
// do something
var data = {
"foo" : "bar"
};
$.ajax(
'file.php',
{
"data" : data,
"type" : "POST",
"dataType" : "json"
}
).done(function (response) {
// do something
});
})(jQuery, App = window.App || {});
Ко всей канители, что представлена выше добавляются еще
- библиотеки (это такие значит ящички-массивы с функциями часто юзабельными),
- модули (ящички-массивы без которых прога тупо не работает),
- в модулях сделаем - зависимости (сначала запускать вот этот ящичек, а потом уже вот тот),
- модули - роутинг и контроллеры (если юзер ввел в строку адреса это - какой ящичек подгрузить?),
- модули - модели (зачем нам верстку туда сюда через запрос пересылать, мы верстку сразу отправим, а потом будем менять просто имя юзера в яваскрипте, а сразу как модель поменялась - рендер яваскриптовый будет сам себя перестраивать - проще говоря мы отправим вместо 1000 символов текста - массив с полями имя, емейл, телефон, а яваскрипт сам построит верстку, поскольку она уже была отправлена при старте программы)
- модуль - рендер (в ящичке как бы не мешает что-то и показывать еще),
- модуль - логи и вывод сообщений (какой из ящичков барахлит),
- модуль - "шина событий" (массив, который заполняется действиями, которые надо выполнить когда что-то произойдет в определенном порядке)
и получается Ангуляр.