Как я могу превратить приложение базы данных CRUD в приложение REST?

Возможно, я смутился, когда читал CRUD vs REST и как они похожи, поэтому я хотел явно спросить: могу ли я превратить приложение CRUD в приложение REST, когда у меня есть конкретный сценарий, и сделаю это быть полезной?

Мое существующее приложение CRUD использует данные в таблице MySQL, которая в основном является пассивной, но время от времени ее необходимо обновить. В моем случае данные представляют различные размеры и характеристики двигателя, которые время от времени меняются или корректируются. Существует также аналогичный, но «более высокий по понятию» вариант использования, где вместо изменения данных на месте он хранится в версиях и хранятся исторические записи. То есть, текущая «строка» данных сначала инактивируется, но в остальном остается в базе данных, а новая строка данных добавляется с новым номером версии, который затем становится активным. Эти новые данные затем считываются для любых будущих вычислений двигателя.

CRUD имеет следующие части: * HTML-форма, которая передает данные в сценарий «добавить /изменить», который перенаправляет на «просмотр» сценарий, который показывает добавленные /обновленные данные.

У меня нет подсказки о том, как преобразовать это в приложение REST или если мне это нужно, или это сделает мою жизнь или чью-то жизнь лучше.

Могу ли я иметь более конкретный пример того, что это значит преобразовать мой конкретный пример использования из CRUD, в REST? Мне нужно изменить любые URL-адреса, интерфейсы, обработку событий и т. Д.?

1 голос | спросил Dennis 13 thEurope/Moscowp30Europe/Moscow09bEurope/MoscowThu, 13 Sep 2018 19:00:04 +0300 2018, 19:00:04

1 ответ


3

CRUD - это термин, который относится к четырем наиболее часто используемым видам деятельности в ориентированных на данные приложениях: Создать (Добавить, Новый), Прочитать ( Get, GetList), Обновить (Изменить), Удалить (Удалить). В терминах базы данных CRUD отображает Вставить , Выбрать , Обновить & Удалить SQL-DML (язык манипулирования данными).

REST (репрезентативный перенос состояний) - это термин, используемый в разработке веб-приложений, который определяет функции или ограничения, которые должны иметь во внимание HTTP RESTFul Services : (1) Client-Server , (2) Безстоящий , (3) Cacheable , (4) Uniform Interface & (5) Многоуровневая система , (6) Код по запросу .

Хорошо сформированная многоуровневая архитектура для веб-приложений . В большинстве случаев три слоя: Fronted , Middleware и amp; Backend . службы REST могут быть созданы на промежуточном ПО или непосредственно в Backend. Предположим, например, что вы думаете о создании своего приложения поверх Сильных стандартизованных фреймворков , предположим, что Frontend будет создан с использованием Googles Angular JS , Сервисы промежуточного ПО будут построены с использованием Node JS & Express JS и Backend будет полагаться на .NET Web API .

REST использует HTTP-глаголы для отображения операций CRUD : GET (Read), POST (Create), Put (Update) & Удалить (Удалить). Ключевым моментом здесь является то, что службы, совместимые с RESTful, используют HTTP-глаголы для выполнения операции CRUD . На стороне Frontend код JavaScript для использования службы REST service mig аналогичен:

angular.module('RESTApp', [])
.controller('CtrlUsers', function($scope, $http) {
    $http.get('http://appdomain.restAPI/users', {id: 1}).
        then(function(response) {
            $scope.data = response.data;
        });
});

Наконец, последние структурные шаблоны для определения многоуровневых приложений используют Model View Controller ( ASP.Net MVC, Spring MVC, PHP Laravel , ...) Design Pattern. В случае доступа к данным хорошо известно, что для доступа к реляционным базам данных используются ORMs Framework , такие как .Net Entity Framework или Hibernate . Все эти вещи должны быть понятны, чтобы дизайн & построить хорошо сформированные приложения RESTful .

ответил ArBR 14 thEurope/Moscowp30Europe/Moscow09bEurope/MoscowFri, 14 Sep 2018 09:12:09 +0300 2018, 09:12:09

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132