@scala_ru

Страница 200 из 1499
Anatoliy
01.11.2016
09:33:34
Тогда второй вопрос, имеет смысл бэк: Play + REST, и фронт - ангуляр?

Alexey
01.11.2016
09:33:37
там есть какой-нибудь аналог spring-security для Play?

Sergey
01.11.2016
09:34:10
Т.е. проверка что этот юзверь именно этот и он может делать то что он делает?
я использую https://github.com/t2v/play2-auth правда переписал под себя чуть имплиментаций в основном добавил работу access_token как у fb

Igor
01.11.2016
09:34:19
Тогда второй вопрос, имеет смысл бэк: Play + REST, и фронт - ангуляр?
смотря под какие задачи. rest на плее легко реализовывается

Google
Anatoliy
01.11.2016
09:34:53
смотря под какие задачи. rest на плее легко реализовывается
CRM для предприятия, видимо нам всё же придется её писать. Вот щас и ищу что лучше использовать.

Alexey
01.11.2016
09:35:43
мне кажется вариант не хуже чем Spring Boot. Воскресение сидел вникал - вроде все есть. Да и LinkedIn на play написан, так что почему нет?

Igor
01.11.2016
09:36:43
Т.е. веб-морда и REST API будет в одном проекте? Тогда самым простым вариантом будет сделать cookie authorization общий, тогда при интеграции с REST API фронтендщикам вообще париться не придется про авторизацию

Anatoliy
01.11.2016
09:36:52
мне кажется вариант не хуже чем Spring Boot. Воскресение сидел вникал - вроде все есть. Да и LinkedIn на play написан, так что почему нет?
да собственно я сам то не против) Просто ведь надо знать как оно работает и как его делать) Фронт - не моя головная боль. Но если Play я более-менее знаю - то REST вообще до сего момента не трогал

Alexey
01.11.2016
09:37:28
ну запросы он обрабатывает, json знает

плюс асинхронность полная

интеграция с БД есть

Anatoliy
01.11.2016
09:39:10
Кстати если делать одним проектом - то еще может быть CSRF, так?

Alexey
01.11.2016
09:39:19
желательно

хоть и не одним проектом

Alexey
01.11.2016
09:40:12
там есть какая-то очень базовая реализация. можно через фильтры сделать - тоже не плохой вариант

Google
Alexey
01.11.2016
09:40:18
я бы jwt посоветовал

Mikhail
01.11.2016
09:40:20
REST в чистом виде - убогое поделие школоты) это ж надо додуматься смешивать транспорт и сообщения в одном флаконе

Anatoliy
01.11.2016
09:40:21
можете сделать авторизацию частью REST API
вот я про это думаю, но из того что пока в голову приходит - это или токен при каждом запросе, или тот же токен но в заголовках, так?

Igor
01.11.2016
09:40:48
в куке

Mikhail
01.11.2016
09:40:59
засуньте все в параметры

тогда не будет проблем со сменой транспорта

а то при смене транспорта начнется - ой, а тут заголовков нет ,а как мне куки передать

ой ой

куки - только для страничек

Igor
01.11.2016
09:41:50
Лучшее враг хорошего

Mikhail
01.11.2016
09:41:54
для запросов к апи - хттп должон использоваться исключительно как транспорт для передачи параметров - про куки вобще лучше заьыть

Mikhail
01.11.2016
09:42:08
как и про заголовки хттп в целом - нахер не нужны для апи

Igor
01.11.2016
09:42:14
Вы тут сейчас насоветуете, человеку нужно просто стартонуть. Все равно с первого раза хороший REST не спроектирует

Alexey
01.11.2016
09:42:17
в header имхо самый норм вариант, чтобы параметры не засорять

в ангуляре можно настроить, что оно там в фоне это все будет делать

Anatoliy
01.11.2016
09:42:43
Вы тут сейчас насоветуете, человеку нужно просто стартонуть. Все равно с первого раза хороший REST не спроектирует
да мне пока нужно что бы оно работало и потом можно было его совершенствовать без переписывания почти всего кода

Igor
01.11.2016
09:44:26
просто прочитайте пару гайдлайнов по дизайну REST-API, выберите понравившийся и придерживайтесь

Google
Mikhail
01.11.2016
09:44:36
т.е. всю инфу пихаем в тело сообщения?
да, даже post&get параметры поддерживают структурную вложенность, а уж просто боди - там и json и xml можно засунуть если сильно хочется. там уже вариантики. plain object - а как ты там дальше будешь интерпретировать - на свое усмотрение

Igor
01.11.2016
09:44:37
https://github.com/Microsoft/api-guidelines/blob/master/Guidelines.md

Vladimir
01.11.2016
09:45:14
Имхо, пофиг что куда класть, все равно будет ясен список всех параметров, при необходимости "сменить транспорт" дело чистой механики будет из кук и заголовков все переложить куда-то еще

Igor
01.11.2016
09:45:58
общие правила: все ответы в json, если запрос ничего не изменяет то это GET запрос, если что-то меняет, то POST. в случае GET-запроса параметры через query string, в случае POST-запроса – в JSON в POST-body

Mikhail
01.11.2016
09:46:01
Имхо, пофиг что куда класть, все равно будет ясен список всех параметров, при необходимости "сменить транспорт" дело чистой механики будет из кук и заголовков все переложить куда-то еще
ну конечно, а потом смотришь на эти поделки школоты и диву даешься как они умудряются эти куки гвоздями во всех местах прибить

Anatoliy
01.11.2016
09:46:42
Хм... хорошо, с этим разобрались. Но - приложение бдут в течении дня активно пользовать. Но так же возможны варианты "вот это надо переделать вот на такое прямо сейчас". И Play стартует... не быстро. Есть возможность как-то проводить обновления без того что бы у всех всё грохнулось?)

Timothy
01.11.2016
09:47:08
Igor
01.11.2016
09:47:29
http://www.vinaysahni.com/best-practices-for-a-pragmatic-restful-api

Anatoliy
01.11.2016
09:47:46
зачем куки в рест? куки уже давно не используют для апи, сейчас модно jwt
ну про jwt я не слышал, а куки... вряд ли, разве что просто как идентификатор на основе которго потом можно пользователя авторзовать автоматом

Mikhail
01.11.2016
09:47:51
зачем куки в рест? куки уже давно не используют для апи, сейчас модно jwt
так и говорю, что в попец эти куки и хедеры вместе с ними если делаешь апи

и request method тоже в попец с ними же

Alexey
01.11.2016
09:48:11
ну так jwt в хэдер пихать надо

а не в GET параметры

наркоманы чтоли?

Anatoliy
01.11.2016
09:48:42
так и говорю, что в попец эти куки и хедеры вместе с ними если делаешь апи
Хм... я тут совсем не разбираюсь, но если без кук - где клиент будет хранить инфу на основе которой я ему буду выдавать данные?

Dmitry
01.11.2016
09:48:59
в локал сторедже

Alexey
01.11.2016
09:49:10
в тех же куках лол )

Google
Anatoliy
01.11.2016
09:49:19
в локал сторедже
т.е. это проблема чисто клиента и я на это просто не обращаю внимания, так?

Igor
01.11.2016
09:49:45
да

Anatoliy
01.11.2016
09:49:46
какую инфу? текущий юзер?
текущий зашифрованный идентификатор юзера который я ему даю на основе его логина и пароля

Timothy
01.11.2016
09:49:47
т.е. это проблема чисто клиента и я на это просто не обращаю внимания, так?
да, сейчас фронты раздувают redux state и хранят в local storage

Igor
01.11.2016
09:49:50
почитайте, что я сбросил

Mikhail
01.11.2016
09:49:52
Хм... я тут совсем не разбираюсь, но если без кук - где клиент будет хранить инфу на основе которой я ему буду выдавать данные?
а зачем тебе что-то хранить на клиенте, кроме идентификатора сесиии? только он и нужен, а дальше ты по нему на сервере все что надо в привязке хранишь

Anatoliy
01.11.2016
09:50:03
Вообщем про это - сообразил

Щас еще гляну что за blue green deployment

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

Anatoliy
01.11.2016
09:54:11
Ну это то сразу было понятно, не понятно как правильно гасить сервер что бы он говорил "я больше ничего не принимаю" и после - ждать пока он закончит выполнять текущие задачи

Anatoliy
01.11.2016
09:54:59
т.е. просто инстанс я конечно отключить могу, но часть клиентов упадет

Igor
01.11.2016
09:54:59
ставите перед апчиками реверс прокси (nginx), деплоите новую версию, переключаете nginx на порт новой версии, ждете минуту, гасите старую

Google
Timothy
01.11.2016
09:55:04
тем более для крада

Igor
01.11.2016
09:55:36
nginx при переключении порта апстрима не дропает запросы, которые уже открыты

Anatoliy
01.11.2016
09:55:45
ставите перед апчиками реверс прокси (nginx), деплоите новую версию, переключаете nginx на порт новой версии, ждете минуту, гасите старую
ваш вариант мне очень нравится, но некоторые задачи могут выполнять и около нескольких часов....

Mikhail
01.11.2016
09:56:26
т.е. просто инстанс я конечно отключить могу, но часть клиентов упадет
да вобще пофиг, даже если там парочка человек рефреш лишний раз нажмет)

Timothy
01.11.2016
09:56:50
Mikhail
01.11.2016
09:56:51
ваш вариант мне очень нравится, но некоторые задачи могут выполнять и около нескольких часов....
так не дропай, а посылай команду на завершение и пусть оно само дропнется после всех активных задач - если прям очень надо их дождаться

Anatoliy
01.11.2016
09:56:52
да вобще пофиг, даже если там парочка человек рефреш лишний раз нажмет)
ну если вам пофиг - вам хорошо, а мне в случае чего отвечать придется

Igor
01.11.2016
09:56:58
если у вас задачи выполняются несколько часов, нужно перепроектировать API таким образом, что бы не держать долгих открытых запросов

Anatoliy
01.11.2016
09:57:06
отдельный сервис для job queue, который не зависит от фронт апи
так я сейчас вообще не про фронт а про бэк говорю

он отдал сообщение что начал считать, и всё, потом мы просто получаем инфу о статусе рассчетов

когда закончит - увидим результат

Alexey
01.11.2016
09:57:43
можно намутить микросервисную архитектуру и передеплоивать только отдельные части

Mikhail
01.11.2016
09:57:45
ну если вам пофиг - вам хорошо, а мне в случае чего отвечать придется
а если интернет лагает и пакеты пропадают, тоже ты отвечаешь перед начальством?

Anatoliy
01.11.2016
09:57:49
но в это время он считает

Mikhail
01.11.2016
09:57:51
ерундой болтаешь товарищ

Anatoliy
01.11.2016
09:58:06
ерундой болтаешь товарищ
а если у вас в локальной сети пакеты теряются вы что, на это просто забиваете что ли?...

Timothy
01.11.2016
09:59:05
так я сейчас вообще не про фронт а про бэк говорю
эм, я не имею в виду бразуер как фронт, я про фронт api, который можно перезапускать сколько угодно раз и не влиять на выполнение тасков в фоне

а вообще, лучше написать монолит и только потом делить все на части

Страница 200 из 1499