
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

Igor
01.11.2016
09:34:19

Google

Anatoliy
01.11.2016
09:34:53

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

Alexey
01.11.2016
09:37:28
ну запросы он обрабатывает, json знает
плюс асинхронность полная
интеграция с БД есть

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

Alexey
01.11.2016
09:39:19
желательно
хоть и не одним проектом

Igor
01.11.2016
09:39:36

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

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

Anatoliy
01.11.2016
09:40:52

Mikhail
01.11.2016
09:40:59
засуньте все в параметры
тогда не будет проблем со сменой транспорта
а то при смене транспорта начнется - ой, а тут заголовков нет ,а как мне куки передать
ой ой
куки - только для страничек

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

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

Vladimir
01.11.2016
09:42:07

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

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

Vladimir
01.11.2016
09:47:16

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

Mikhail
01.11.2016
09:47:51
и request method тоже в попец с ними же

Alexey
01.11.2016
09:48:11
ну так jwt в хэдер пихать надо
а не в GET параметры
наркоманы чтоли?

Grigory
01.11.2016
09:48:42

Anatoliy
01.11.2016
09:48:42

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

Timothy
01.11.2016
09:49:04

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

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

Mikhail
01.11.2016
09:49:52

Timothy
01.11.2016
09:49:57

Anatoliy
01.11.2016
09:50:03
Вообщем про это - сообразил
Щас еще гляну что за blue green deployment
Т.е. фактически он означает одновременную работу сразу минимум двух инстансов которые будут работать параллельно и смогут понимать что один из них этого пользователя уже авторизовал, так?

Timothy
01.11.2016
09:52:59
даже redis/memcached не нужен

Igor
01.11.2016
09:53:57

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

Timothy
01.11.2016
09:54:55

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

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
он отдал сообщение что начал считать, и всё, потом мы просто получаем инфу о статусе рассчетов
когда закончит - увидим результат

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

Nikolay
01.11.2016
09:58:51
типа составления отчетов?

Timothy
01.11.2016
09:59:05
а вообще, лучше написать монолит и только потом делить все на части