
Sergey
12.05.2017
07:47:53

Andrey
12.05.2017
08:14:53

Sergey
12.05.2017
08:16:05

Andrey
12.05.2017
08:16:33
di

Google

Sergey
12.05.2017
08:16:56
тонко

Aleh
12.05.2017
09:21:31
Вопросы по пхп в чатик по пхп

Oleg
12.05.2017
09:41:55

Andrey
12.05.2017
09:44:21

Andrey
12.05.2017
10:51:25
а по проектированию есть какие-нить чаты? а то, боюсь, у нас опять свои велосипеды начнут писать,
интересует конкретно rest api,
лично у меня в голове каша, че-то про микросервисы слышал, но не понимаю какое они к этому апи отношение имеют (если имеют)

Andrey
12.05.2017
10:51:58
Ты всё равно с первого раза нормально не спроектируешь.

Andrey
12.05.2017
10:53:21
мне ничего ) у нас хотят писать его,
есть кодовая база на первом зенде, там есть какая-то реализация апи (не рест), хотят на yii апи запилить,
просто пока есть возможность - можно посоветовать что и как делать (пока спрашивают, потом поздно будет))

Oleg
12.05.2017
12:47:56
А разве в YII нет уже готового REST ?
Тема-то попса

Aleh
12.05.2017
12:52:38

F01134H
12.05.2017
12:54:33
по мне в плане реализации graphql лучше выглядит

Google

Sergey
12.05.2017
12:55:16
для бэка - да, с клиентами не все так просто

Aleh
12.05.2017
12:55:28

Sergey
12.05.2017
12:55:39
да, куча либок, куча крутых штук

Aleh
12.05.2017
12:55:50
лимиты, авторизация, ошибки
там ж как куча крутых штук, так куча супер банальных нерешенных проблем

Sergey
12.05.2017
12:57:23
хотя graphql на данный момент неплохой формат. Единственное что то что вызывает больше всего вопросов (пагинация, аутентификация и т.д.) там не решается и как бы формат не об этом)

Oleg
12.05.2017
13:07:06
Вопрос а есть инструменты которые чертят UML структуру Из уже существующего кода ?
Есть проект надо классы отобразить

Aleh
12.05.2017
13:07:38
вроде idea умеет

Sergey
12.05.2017
13:07:49
https://mamuz.github.io/PhpDependencyAnalysis/

Oleg
12.05.2017
13:10:54
спс!

Sergey
12.05.2017
13:18:51
лимиты, авторизация, ошибки
ошибки к слову решает. С лимитами добавляет своих проблем (надо вводить анализ стоимости запросов для филдов например)
но все сводится к тому что идея использовать http как application level протокол так себе
полюбому придется расширять своими велосипедами
есть еще odata для вдохновения


Andrey
12.05.2017
13:23:51
А разве в YII нет уже готового REST ?
как по мне, это равносильно "чтобы было ооп - пиши на классах", вроде верно, но ни фига не объясняет )) та же MVC - ну есть она в зенде, а я так код напишу, что от нее толку никакого не будет.
Меня не столько даже рест, сколько вообще написание апи интересует, хотя бы что-то типа "паттернов для апи", т.к. сомневаюсь, что для нормального апи (в том числе для масштабируемости) достаточно будет просто методы наружу бросить и через тот же swagger сделать документацию. Иначе можно взять soap, нагородить там фигню всякую, а потом гордиться своим "апи". Да, все круто будет, клиенты легко им пользуются, но внутри ад кромешный будет.
Взять те же микросервисы - сомневаюсь, что у меня с первого раза без предварительной подготовки получится написать нормальную реализацию. Так же и с апи, тем более там новичку (относительно новичку, не знаю его уровень) писать поручили, а потом переделывать вряд ли станут


Sergey
12.05.2017
13:35:29
> ну есть она в зенде
нету
> паттернов для апи
1. token-based аутентификация, self-contained токены, JWT
2. делать все респонсы объектом. Ну мол коллекция будет выглядеть как {data:[{item}]}
3. пагинация курсором, удобная и гибкая штука. Еще можно покурить про continuation tokens, их фэйсбук юзает
4. инклуды, возможность компонавать ресурсы из ресурсов (тут graphql тип самое крутое что есть)
так. ладно. не оффтопим
как по мне, это равносильно "чтобы было ооп - пиши на классах", вроде верно, но ни фига не объясняет )) та же MVC - ну есть она в зенде, а я так код напишу, что от нее толку никакого не будет.
Меня не столько даже рест, сколько вообще написание апи интересует, хотя бы что-то типа "паттернов для апи", т.к. сомневаюсь, что для нормального апи (в том числе для масштабируемости) достаточно будет просто методы наружу бросить и через тот же swagger сделать документацию. Иначе можно взять soap, нагородить там фигню всякую, а потом гордиться своим "апи". Да, все круто будет, клиенты легко им пользуются, но внутри ад кромешный будет.
Взять те же микросервисы - сомневаюсь, что у меня с первого раза без предварительной подготовки получится написать нормальную реализацию. Так же и с апи, тем более там новичку (относительно новичку, не знаю его уровень) писать поручили, а потом переделывать вряд ли станут
НЕ ДЕЛАЙ МИКРОСЕРВИСЫ

Google

Sergey
12.05.2017
14:13:05
> сомневаюсь, что у меня с первого раза без предварительной подготовки получится написать нормальную реализацию.
тут не в API дело, а в разделении контекстов
ну мол если не умеешь монолиты готовить микросервисы точно не выйдет
просто в монолитах у тебя будут ивенты на уровне процесса одной машины, а в микросервисах - какой-нибудь RPC на json между разными машинами

Evgeniy
12.05.2017
14:14:06

Sergey
12.05.2017
14:14:15
и если у тебя нет требований к тому что бы разделить деплоймент по контекстам, то как бы лучше не лесть в это болото

Evgeniy
12.05.2017
14:14:26
хотя jwt штука прикольная но я ее боюсь

Sergey
12.05.2017
14:14:42
ну и HS256 по дефолту вместо RSA

Evgeniy
12.05.2017
14:15:01
ну у нас тоже jwt
но алгоритм мы сами проставляем

Sergey
12.05.2017
14:15:23
главно что бы alg: none нельзя было сделать короч
а так чего боишься?

Sergey
12.05.2017
14:15:38
удобная ж штука
то что для мгновенной инвалидации надо блэклисты делать? или что?

Evgeniy
12.05.2017
14:16:05
у нас алгоритм защит внутри
для сеюрности

Sergey
12.05.2017
14:16:43
ну у меня... просто жестко проверяется только тот который мне надо и игнорятся другие
ну и еще надо смотреть что в пэйлоад кладут
а то как-то застал одного который положил email пользователя в jwt

Admin
ERROR: S client not available

Google

Evgeniy
12.05.2017
14:17:38
вот я этого и боюсь
у нас сессия в jwt целиком)
мы на своей стороне не храним ничего

Sergey
12.05.2017
14:18:11
ну мы тоже)

Evgeniy
12.05.2017
14:18:13
но найдется мудак что в сессию сложит что то большое

Sergey
12.05.2017
14:18:15
чего бояться то?)

Evgeniy
12.05.2017
14:18:22
и кука разбухнет и браузер не скушает)

Sergey
12.05.2017
14:18:25
а ну как... тоесть у тебя нет рефреш токенов?

Evgeniy
12.05.2017
14:19:25
не я его вводил)
не читал еще подробно просто сама идея хранения данных в пользователе интересна
у нас айдишка в основном

Sergey
12.05.2017
14:20:11
рефреш токены в целом это защита от MitM атак, оно только для этого надо
а для инвалидации надо мутить блэклисты. у меня их нет и я грущу)

Aleh
12.05.2017
14:20:37
или не делать jwt)

Sergey
12.05.2017
14:20:44
это ж так круто
тебе приходит http запрос и там все что надо для его обработки

Aleh
12.05.2017
14:21:06
но только нужны блек-листы = не все)
а так решается фронтовой мидлварой, которая этим займется

Google

Sergey
12.05.2017
14:21:29
ну как бы да)
а jwt позволяет твоей мидлваре не ходить никуда
у нее все есть

Aleh
12.05.2017
14:21:44
кроме блеклиста?)

Sergey
12.05.2017
14:21:52
ну блэклист у нее ж будет)
рэдис какой

Aleh
12.05.2017
14:22:00
ну так я могу и сессии ей отдать