Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / WinForms, .Net Framework Новый топик    Ответить
Топик располагается на нескольких страницах: [1] 2 3 4 5 6 7 8 9 10 11   вперед  Ctrl      все
 Rest. А как реализуются методы с логикой сложнее чем Добавить/Удалить ?  [new]
SomeQuestions
Member

Откуда:
Сообщений: 14
Интересует такой вопрос.
В Aspnet Mvc принято иметь контроллеры. Причем каждый контроллер посвящен отдельному аспекту - работа с пользователями, работа с документами т.д. И принято называть методы с читабельными-осмысленными названиями.
Теперь Rest.
Мы имеем контроллер для работы с сущностями и базовые операции Get для чтения, Post для вставки, Put для изменения.
Но как в Rest укладываются задачи сложнее чем базовые команды Добавить/Удалить ? Что если требуется реализовать логику, к примеру, "найти все документы где создателем являлись пользователи из переданного списка и скопировать их на FTP". Как такую задачу впихнуть в подход Rest ?

И еще вопрос. Я знаю, что на смену WebApi и Mvc приходит Aspnet Core. Но не заменяет их, а идет параллельно. Но какая идеалогия лежит в Core ? Та, что ближе к Mvc подходу (говорящие имена методов) или к WebApi (только базовые операции над сущностью) ?
23 май 18, 19:38    [21433748]     Ответить | Цитировать Сообщить модератору
 Re: Rest. А как реализуются методы с логикой сложнее чем Добавить/Удалить ?  [new]
Shocker.Pro
Member

Откуда: ->|<- :адуктО
Сообщений: 19446
SomeQuestions
Мы имеем контроллер для работы с сущностями и базовые операции Get для чтения, Post для вставки, Put для изменения.
Но как в Rest укладываются задачи сложнее чем базовые команды Добавить/Удалить ?
REST - это концепция, а не жесткий ограничивающий стандарт. Что мешает в тот же контроллер добавить "/api/document/getList"?

SomeQuestions
И еще вопрос. Я знаю, что на смену WebApi и Mvc приходит Aspnet Core. Но не заменяет их, а идет параллельно. Но какая идеалогия лежит в Core ? Та, что ближе к Mvc подходу (говорящие имена методов) или к WebApi (только базовые операции над сущностью) ?
Неправильно всё понял. ASP.NET Core приходит не на смену WebApi и Mvc, а на смену ASP.NET.
WebApi и Mvc в нем точно так же живут и развиваются
23 май 18, 20:05    [21433800]     Ответить | Цитировать Сообщить модератору
 Re: Rest. А как реализуются методы с логикой сложнее чем Добавить/Удалить ?  [new]
Shocker.Pro
Member

Откуда: ->|<- :адуктО
Сообщений: 19446
SomeQuestions
Mvc подходу (говорящие имена методов) или к WebApi (только базовые операции над сущностью)
смешались в кучу кони....
Говорящие имена методов - это от аккуратности программиста зависит, в любой технологии можно нагородить свалку. А WebApi не равно REST, и кто мешает использовать там говорящие методы?
23 май 18, 20:12    [21433813]     Ответить | Цитировать Сообщить модератору
 Re: Rest. А как реализуются методы с логикой сложнее чем Добавить/Удалить ?  [new]
Petro123
Member

Откуда: Загрузочный сектор Москвы (AutoPOI.ru)
Сообщений: 35315
SomeQuestions,
При rest бизнес логика (БЛ) по умолчанию на клиенте.
Контроллеры тоже.
Например, ангуляр.
23 май 18, 20:32    [21433842]     Ответить | Цитировать Сообщить модератору
 Re: Rest. А как реализуются методы с логикой сложнее чем Добавить/Удалить ?  [new]
SomeQuestions
Member

Откуда:
Сообщений: 14
И все же не понимаю. Сам подход Rest гласит, что у контроллера должны быть лишь операции типа HttpPost, HttpGet, HttpPut. И как это согласуется с идеей: "но вообще вы можете в контролере и просто фигачить методы типа FindUsersDocsAndSentToFtp" ?
И в чем тогда смысл следовать Rest подходу, если он не ограничивает использования обычных методов ?

"WebApi и Mvc в нем точно так же живут и развиваются". Если я правильно понял обе технологии сливаются в одну, нет больше разделения. Я не трогал Core до сих пор. Но мне интересно, если обе технологии сливаются в одну, то каким образом ? Ведь подходы разные - в WebApi предполагается, что в контроллере только CRUD операции. А в MVC используются читабельные имена методов.
23 май 18, 21:18    [21433958]     Ответить | Цитировать Сообщить модератору
 Re: Rest. А как реализуются методы с логикой сложнее чем Добавить/Удалить ?  [new]
SomeQuestions
Member

Откуда:
Сообщений: 14
Petro123
SomeQuestions,
При rest бизнес логика (БЛ) по умолчанию на клиенте.
Контроллеры тоже.
Например, ангуляр.


Но не всегда это возможно. тот же пример - отметить галочкой список юзеров и потом заставить бэкэнд сделать с ними работу. Что то перекинуть с сервера на сервер. Как это накладывается на Rest подход ?
23 май 18, 21:19    [21433964]     Ответить | Цитировать Сообщить модератору
 Re: Rest. А как реализуются методы с логикой сложнее чем Добавить/Удалить ?  [new]
Petro123
Member

Откуда: Загрузочный сектор Москвы (AutoPOI.ru)
Сообщений: 35315
SomeQuestions
Petro123
SomeQuestions,
При rest бизнес логика (БЛ) по умолчанию на клиенте.
Контроллеры тоже.
Например, ангуляр.


Но не всегда это возможно. тот же пример - отметить галочкой список юзеров и потом заставить бэкэнд сделать с ними работу. Что то перекинуть с сервера на сервер. Как это накладывается на Rest подход ?

Приложение js с одной точкой входа видел?
Почти вся работа на клиенте.
Но чистого рест не бывает. Так что есть исключения.
23 май 18, 21:57    [21434063]     Ответить | Цитировать Сообщить модератору
 Re: Rest. А как реализуются методы с логикой сложнее чем Добавить/Удалить ?  [new]
SomeQuestions
Member

Откуда:
Сообщений: 14
Petro123,

Ну. Если исключениями называть любые методы выходящие за рамки базового CRUD, то, полагаю, это подавляющее большинство бизнес приложений...

Так давайте все таки уточним. Как сочетать эти два мира в WebApi, и в современном Aspnet Core ?
В контроллере для CRUD операций должны быть предусмотрены методы работающие на основе Http Verb'ов И в том же контроллере допустимы методы типа HttpGet и HttpPost с читабельными именами для сложной логики. Так ?

Интересует мнение тех, кто как раз и реализует такие сервисы. Т.е. практический опыт создания такой бэкэндовой системы.
23 май 18, 22:18    [21434113]     Ответить | Цитировать Сообщить модератору
 Re: Rest. А как реализуются методы с логикой сложнее чем Добавить/Удалить ?  [new]
Petro123
Member

Откуда: Загрузочный сектор Москвы (AutoPOI.ru)
Сообщений: 35315
SomeQuestions,
Один клик в гугл и:
Создание веб-API с помощью ASP.NET Core и Visual Studio
для Windows

Тут главное маппинг урл. Не вижу проблемы.
23 май 18, 23:19    [21434257]     Ответить | Цитировать Сообщить модератору
 Re: Rest. А как реализуются методы с логикой сложнее чем Добавить/Удалить ?  [new]
SomeQuestions
Member

Откуда:
Сообщений: 14
Petro123,

в том и дело, что в подобных статьях описывается только Rest подход
https://habr.com/company/microsoft/blog/312878/
в том и дело. Только примеры с базовыми Crud операций.

ну а мапинг, что мапинг ? Понятно что можно сконфигурировать, чтобы в одной контроллере были урлы для круд операций через Http verbs и именованные методы для сложной логики.

Мой вопрос - является ли это нормальной практикой ? Вы говорите, что такое может быть в порядке исключения. Но как по мне, то это будет в любом мало мальски сложном проекте. Взять хотя бы SPA. Ну показать список, изменить запись, добавить. Это понятно. Но а со сложными методами как ?
23 май 18, 23:30    [21434289]     Ответить | Цитировать Сообщить модератору
 Re: Rest. А как реализуются методы с логикой сложнее чем Добавить/Удалить ?  [new]
hVostt
Member

Откуда:
Сообщений: 14920
SomeQuestions
Но как в Rest укладываются задачи сложнее чем базовые команды Добавить/Удалить ? Что если требуется реализовать логику, к примеру, "найти все документы где создателем являлись пользователи из переданного списка и скопировать их на FTP". Как такую задачу впихнуть в подход Rest ?


В смысле по-сложнее? Что тут сложного?

GET -- идемпотентная операция получения данных
POST -- создаёт НОВЫЕ данные
PUT -- изменяет СУЩЕСТВУЮЩИЕ данные
DELETE -- удаляет данные

это не обязательно работает только с CRUD. любая сколько угодно сложная операция, приводит к каким-то последствиям. если вы можете адекватно разложить их по этому принципу, значит задача решена.

не можете, забейте тогда на HTTP-методы, работайте с маршрутами (url)
23 май 18, 23:34    [21434305]     Ответить | Цитировать Сообщить модератору
 Re: Rest. А как реализуются методы с логикой сложнее чем Добавить/Удалить ?  [new]
Petro123
Member

Откуда: Загрузочный сектор Москвы (AutoPOI.ru)
Сообщений: 35315
SomeQuestions,
Сделайте 90% в ангуляре и 10 на сервере. И успокойтесь.
Будет rest.
23 май 18, 23:36    [21434312]     Ответить | Цитировать Сообщить модератору
 Re: Rest. А как реализуются методы с логикой сложнее чем Добавить/Удалить ?  [new]
skyANA
Member

Откуда: Зеленоград
Сообщений: 25706
SomeQuestions
найти все документы где создателем являлись пользователи из переданного списка и скопировать их на FTP

А если убрать в сторону REST, WebApi и Mvc, то как Вы это реализуете в ООП?
В один класс, в один метод запихнёте? Или в несколько?
24 май 18, 07:36    [21434674]     Ответить | Цитировать Сообщить модератору
 Re: Rest. А как реализуются методы с логикой сложнее чем Добавить/Удалить ?  [new]
Агнец за бортом
Member

Откуда:
Сообщений: 1040
Petro123
SomeQuestions,
Сделайте 90% в ангуляре и 10 на сервере. И успокойтесь.
Будет rest.


Тогда такой вопрос - а зачем вообще городить(применять) REST-подход? Чтобы "типа" сервер был один, а клиентов - много?

Но если 90% сделать на ангуляре, то преимущества подобного подхода нивелируются сложностью клиентской разработки.
24 май 18, 09:28    [21434827]     Ответить | Цитировать Сообщить модератору
 Re: Rest. А как реализуются методы с логикой сложнее чем Добавить/Удалить ?  [new]
Petro123
Member

Откуда: Загрузочный сектор Москвы (AutoPOI.ru)
Сообщений: 35315
Агнец за бортом,
Ангуляр не обязателен. Главное где БЛ (контроллеры).
А у него все как на ладони. Маппишь урл и все дела.
...
REST никто не плодит. Это вариант архитектуры. Причем исторический.

Агнец за бортом
Чтобы "типа" сервер был один, а клиентов - много?

Как вариант да. Эра мобильнков и API к ним.
24 май 18, 09:53    [21434963]     Ответить | Цитировать Сообщить модератору
 Re: Rest. А как реализуются методы с логикой сложнее чем Добавить/Удалить ?  [new]
Petro123
Member

Откуда: Загрузочный сектор Москвы (AutoPOI.ru)
Сообщений: 35315
Агнец за бортом
сложностью клиентской разработки.
с каких пор программировать на одном из ЯП стало сложнее? Везде одинаково))
24 май 18, 09:55    [21434966]     Ответить | Цитировать Сообщить модератору
 Re: Rest. А как реализуются методы с логикой сложнее чем Добавить/Удалить ?  [new]
Агнец за бортом
Member

Откуда:
Сообщений: 1040
Petro123
Как вариант да.


А еще?
24 май 18, 10:26    [21435141]     Ответить | Цитировать Сообщить модератору
 Re: Rest. А как реализуются методы с логикой сложнее чем Добавить/Удалить ?  [new]
Агнец за бортом
Member

Откуда:
Сообщений: 1040
Petro123
с каких пор программировать на одном из ЯП стало сложнее?


Причем тут ЯП?

Сложность там - где ветвление логики.

БД проектируем за неделю, REST-сервис - генерится вообще из БД - ура-ура, мы можем теперь использовать spread разных клиентов.

Только вот теперь писать клиента (каждого) мы будем по полгода.

Логика перемещается сначала их хранимок в сервер приложений, теперь из сервера приложений - на толстого клиента.

В чем профит?
24 май 18, 10:33    [21435190]     Ответить | Цитировать Сообщить модератору
 Re: Rest. А как реализуются методы с логикой сложнее чем Добавить/Удалить ?  [new]
Агнец за бортом
Member

Откуда:
Сообщений: 1040
Petro123
Ангуляр не обязателен. Главное где БЛ (контроллеры).


Во- первых - ты первый упомянул ангуляр, откуда ж я знаю, может быть он у тебя ассоциируется с клиентской разработкой, просто использую твою терминологию.

Во вторых что значит БЛ (контроллеры)??
24 май 18, 10:35    [21435205]     Ответить | Цитировать Сообщить модератору
 Re: Rest. А как реализуются методы с логикой сложнее чем Добавить/Удалить ?  [new]
skyANA
Member

Откуда: Зеленоград
Сообщений: 25706
Petro123,

ты серьёзно предлагаешь через браузер копировать файлы на FTP?
24 май 18, 10:47    [21435302]     Ответить | Цитировать Сообщить модератору
 Re: Rest. А как реализуются методы с логикой сложнее чем Добавить/Удалить ?  [new]
Petro123
Member

Откуда: Загрузочный сектор Москвы (AutoPOI.ru)
Сообщений: 35315
Агнец за бортом
Petro123
Как вариант да.


А еще?
REST клиент андроид
24 май 18, 11:47    [21435622]     Ответить | Цитировать Сообщить модератору
 Re: Rest. А как реализуются методы с логикой сложнее чем Добавить/Удалить ?  [new]
Petro123
Member

Откуда: Загрузочный сектор Москвы (AutoPOI.ru)
Сообщений: 35315
Агнец за бортом
Логика перемещается сначала их хранимок в сервер приложений, теперь из сервера приложений - на толстого клиента.

В чем профит?

Это маятник движения прогресса. Туда сюда))))
24 май 18, 11:48    [21435635]     Ответить | Цитировать Сообщить модератору
 Re: Rest. А как реализуются методы с логикой сложнее чем Добавить/Удалить ?  [new]
Petro123
Member

Откуда: Загрузочный сектор Москвы (AutoPOI.ru)
Сообщений: 35315
Агнец за бортом
Во вторых что значит БЛ (контроллеры)??
бизнес логика это контроллеры. Чаще всего.
Если не брать технические вещи. Роутинг и т.д.
24 май 18, 11:50    [21435643]     Ответить | Цитировать Сообщить модератору
 Re: Rest. А как реализуются методы с логикой сложнее чем Добавить/Удалить ?  [new]
Petro123
Member

Откуда: Загрузочный сектор Москвы (AutoPOI.ru)
Сообщений: 35315
Агнец за бортом
Только вот теперь писать клиента (каждого) мы будем по полгода.
ты как вадя тут выступаешь против фреймворков.
Это оффтоп.
Что на шарпе сайт пару недель, что на js + rest сайт пару недель.
24 май 18, 12:00    [21435719]     Ответить | Цитировать Сообщить модератору
 Re: Rest. А как реализуются методы с логикой сложнее чем Добавить/Удалить ?  [new]
Агнец за бортом
Member

Откуда:
Сообщений: 1040
Petro123
Что на шарпе сайт


Вопросов больше не имею.
24 май 18, 13:12    [21436191]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2 3 4 5 6 7 8 9 10 11   вперед  Ctrl      все
Все форумы / WinForms, .Net Framework Ответить