Диссертации - Разработка web-ориентированного приложения на php-фрэймворке Laravel с использованием шаблона проектирования HMVC

Анализ технологий разработки Web-приложений - Сравнительный анализ одностраничных, интеграционных и мульти-интеграционных Web-приложений

По способу функционирования web-приложения можно разделить на 3 группы:

– Одностраничные web-приложения, у которых вся маршрутизация запросов выполняется в одной загруженной странице.

– Интеграционные. Работа этих web-приложений основана на взаимодействии серверов, например сервер PHP и сервер MySQL.

– Мульти-инеграционные. Работа этих web-приложении основана на взаимодействии серверных и клиентских API, например технология RestFull API позволяет обойти ограничения SQL-запросов, которые выполняются только на стороне сервера. RestFull API преобразоваывает данные сервера в формат JSON, с которым взаимодействует JavaScript. Формат JSON является единым унифицированным форматом данных как на стороне клиента, так и на стороне сервера.

Мульти-интеграционными являются такие приложения, которые могут:

– взаимодействовать с любыми, как серверными, так и клиентскими технологиями.

– самообновляться.

Мульти-интеграционные программы можно постоянно дописывать и обновлять. Объектно-ориентированные решения в написании кода при построении таких программ предоставляет еще больше гибкости, поскольку классы библиотек можно изменять, добавлять и удалять, а объекты, построенные на их основе таких классов могут иметь широкий диапазан характеристик. Мульти-интеграционные web-приложения - это современные, и с какой-то точки зрения, вечные приложения (т.к. они могут интегрироваться с любой базой данных и запускаться на любом сервере). Такие серверные технологии, менеджер зависимости для PHP - Composer и обновляемый фрэймворк Laravel, предоставляют мульти-интеграционность на стороне web-сервера. Клиентскую часть мы всегда можем переписать, добавив туда новый функционал, либо изменив существующие файлы стилей и скриптов. А вот с сервером баз данных дело обстоит иначе. Не все языки программирования настроены на удобное взаимодействие с базой MySQL, используемой в приложении [11]. Поэтому для добавления мульти-интеграционности на стороне сервера баз данных, было решено разработать RestFull Api.

Транзакция по такому API будет состоять, как минимум, из следующих запросов и ответов:

– метод запроса, например: GET, POST, PUT, DELETE, также имеется возможность использовать любые другие типы Request-переменных;

– маршрут запроса на добавление данных;

– маршрут запроса на удаление данных;

– маршрут запроса на вывод всех данных;

– маршрут запроса на вывод данных по идентификатору;

– маршрут запроса на обновление данных;

– могут присутствовать иные запросы, взаимодействующие с данными;

– тело ответа в формате JSON или в формате статуса страницы;

Многие разработчики стали использовать парадигму RestFull Api в разработке web-сервисов с использованием HTTP [12]. Особенностью RestFull API является его универсальность. Однако при разработке модуля были введены некоторые ограничения. А именно:

– использовались всего два метода отправки запроса GET и POST.

– тело ответа всегда формируется в формате JSON, даже если это метод удаления или обновления. При удалении записи возвращается ответ в виде пустых фигурных скопок, т.е. пустой JSON [13].

Для реализации модуля RestFull Api было решено использовать Node.js. Данный модуль на прямую не связан с самим приложением, и может быть использован другими приложениями, которым необходимо обращаться к данным.

Разработка любой node-программы начинается с определения зависимостей. RestFull Api не будет исключением. Рассмотрим файл зависимостей packages.json, в котором указаны название модуля, версия, опсание, исполняемые файлы, скрипты и необходимые зависимости.

{
  "name": "todolistapi",
  "version": "1.0.0",
  "description": "RESTful todoListApi",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1",
    "start": "nodemon server.js"
  },
  "repository": {
    "type": "git",
    "url": "git+https://github.com/mikhalkevich/RestfullApi"
  },
  "keywords": [
    "RESTful",
    "API",
    "Tutorial"
  ],
  "author": "Mikhalkevich Alexandr",
  "license": "ISC",
  "bugs": {
    "url": "https://github.com/mikhalkevich/RestfullApi/issues"
  },
  "homepage": "https://github.com/mikhalkevich/RestfullApi#readme",
  "devDependencies": {
    "nodemon": "^1.11.0"
  },
  "dependencies": {
    "body-parser": "^1.15.2",
    "express": "^4.14.0",
    "mongoose": "^4.7.2"
  }
}

Из листинга видно, что для реализации модуля необходимо установить следующие зависимости: body-parser, express и mongoose [1-А]. Для установки зависимостей, воспользуемся менеджером зависимостей npm:

npm install

Реализация необходимых GET и POST-запросов находится в маршрутизаторе, роль которого выполняет файл api/routes/todoListRoutes.js:

'use strict';
module.exports = function(app) {
	var todoList = require('../controllers/todoListController');
	// todoList Routes
	app.route('/tasks')
		.get(todoList.list_all_tasks)
		.post(todoList.create_a_task);
	app.route('/tasks/:taskId')
		.get(todoList.read_a_task)
		.put(todoList.update_a_task)
		.delete(todoList.delete_a_task);
};

Скачать готовый модуль RestfullApi на Node.js можно с авторского репозитория по адресу:

https://github.com/mikhalkevich/RestfullApi.git

Количество комментариев: 0

Для того, чтобы оставить коментарий необходимо зарегистрироваться


Изображения Видео

2. Интеграционные среды разработок Java режим доступа: http://habr.com/post/140745/. Дата доступа 19.05.2019.
3. PHP Режим доступа: https://ru.wikipedia.org/wiki/PHP. Дата доступа 19.01.2019.
4. ГОСТ 19.105-78 Общие требования к программным документам Режим доступа: http://rugost.com/index.php?option=com_content&view=article&id=52:19105. Дата доступа 19.01.2019.