
Konstantin
27.03.2018
15:18:33
у него недоверие к инпуту

Sergey
27.03.2018
15:18:38
....
у тебя аутпут а не инпут
или то что лезет из слоя ниже это у тебя инпут?

Google

Sergey
27.03.2018
15:19:04
ты забавный)

Konstantin
27.03.2018
15:19:18
все так говорят

Sergey
27.03.2018
15:20:26
всеравно дто )
дай пару минут, попробую более конкретный пример что бы предметно можно было говорить

Konstantin
27.03.2018
15:20:38
да не торопись я на обед

Sergey
27.03.2018
15:22:00
ну короч вопрос не в том что делать классы или нет - вопрос для чего мы из делаем если за валидацию у нас всеравно отвечает "слой выше", а данные всеравно надо доставать и как-то компоновать
тем более что в php нет возможности красиво это хэндлить (делать ссылки на поля классов)
зато есть массивчики (которые не массивчики вовсе))
и почему мы не пользуемся плюсами того языка который нам достался а пытаемся как-то усложнить себе жизнь)
p.s. для запросов DTO как объект определенного типа всеравно удобнее, тут спора нет. Хотя ценность не столь высока как в java. А в PHP все эти пляски с DTO для респонсов вынуждают кодогенераторы писать

Konstantin
27.03.2018
15:36:27
ясн )
https://stackoverflow.com/a/6711169 на всякий случай вдруг кому пригодится
кстати вот эта навязчивая мода использовать везде массивы

Google

Sergey
27.03.2018
15:40:25

Konstantin
27.03.2018
15:40:28
битриксе, не к ночи помянут, там примерно все из этого состоит. хорошо что я с ним уже год не работаю но суть такая - хуй проссышь что приходит в шаблон
т.е. у тебя есть например 3 версии из трех разных годов, и в каждой версии в шаблон тебе приходит разный набор данных, иногда не документированый

Sergey
27.03.2018
15:41:06
ты же понимаешь что я говорю о очень узкой проблеме, не предлагаю юзать массивы вместо объектов и все такое

Konstantin
27.03.2018
15:41:15
выяснение "а нахуй вот это" занимает примерно 80% времени )

Sergey
27.03.2018
15:41:18
чувствуешь разницу?

Konstantin
27.03.2018
15:41:36
направление разница
)))

Sergey
27.03.2018
15:41:44
не чувствуешь, понял

Konstantin
27.03.2018
15:42:54
"уходит куда то" против "приходит что то в шаблон" - че разница большая есть?
так или иначе надо потратить время чтобы узнать что там за формат, что за поля, что в них передается
тот же вардамп изучить или в отладчике посмотреть - потеря времени имхо
это не рассматривал как минус? )

Sergey
27.03.2018
15:44:30
ну то есть сериалайзер тот же
очень узкий кейс, специфичный для апишек и очень даже частый для апишек

Konstantin
27.03.2018
15:44:53
а что за место это "где то"
ну вот что там, кто клиент?

Sergey
27.03.2018
15:45:14

Google

Sergey
27.03.2018
15:45:31
или iOS приложение на swift
между нами - json
что они там уже будут делать, мэпить на DTO через какой-нибудь мэппер, юзать как есть + проверка типов через flow/typescript - на бэкэнд это вообще никак не влияет

Konstantin
27.03.2018
15:47:44
а документация к апи откуда берется

Sergey
27.03.2018
15:48:02

Konstantin
27.03.2018
15:48:02
ну т.е. в нормальном апи всегда есть "модели данных" как мне видится
с дто можно нагенерировать
а у тебя? )

Sergey
27.03.2018
15:48:30
а у тебя? )
у меня обычно сначала дока и потом имплементация
потому я могу из доки и DTO сгенерить, или рулы валидации отдельные...

Konstantin
27.03.2018
15:48:58
ну ок дока и имплементация

Konstantin
27.03.2018
15:49:03
а потом когда надо поднять версию
добавить 3-4 поля
а делаешь не ты

Sergey
27.03.2018
15:49:19

Konstantin
27.03.2018
15:49:19
человек сделал и забыл, документация старая и там не отражаются изменения
другую

Sergey
27.03.2018
15:49:30
ты про заведомо мертвую идею версионизации API?)

Konstantin
27.03.2018
15:49:31
версию апи

Google

Konstantin
27.03.2018
15:49:46
чем она мертвая? нормальная такая идея

Sergey
27.03.2018
15:49:50
просто уточню - ты пилил API? приходилось заниматься версионированием оной?
ну то есть API которые хотя бы год в продакшене там висели и все такое

Konstantin
27.03.2018
15:50:08
для долгоиграющих необновляющихся клиентов еще не пилил
а вот мобильные платформы как раз и могут быть такими. чел тупо ленится обновить твое приложение которое работает со старой версией апи
а ты хуякс на том же хосте начинаешь менять модели данных
тут на помощь спешит версионирование
не?
или как то подругому можна?

Sergey
27.03.2018
15:54:19
мне на эту тему нравится как страйп делают

Admin
ERROR: S client not available

Sergey
27.03.2018
15:54:24
обратную совместимость апишек

Sergey
27.03.2018
15:55:28

Konstantin
27.03.2018
15:55:47
но показать не можешь, да?

Sergey
27.03.2018
15:56:00
исходники?

Konstantin
27.03.2018
15:56:08
ага

Sergey
27.03.2018
15:56:14
NDA, сорян
будто бы ты можешь исходники направо налево раскидывтаь

Valentin
27.03.2018
15:56:52

Google

Konstantin
27.03.2018
15:57:02
так многие не могут
о у тебя то я надеялся хотя бы есть 1-2 для паблика

Sergey
27.03.2018
15:57:28
а потом каждый будет со своей стороны пилить реализацию
а так по доке можно заглушек налепить

Sergey
27.03.2018
15:58:21
сейчас больше смотрю в сторону Graphql и подобным способам задавать схему для API но все это пока сыро мутно

Valentin
27.03.2018
16:00:05

Sergey
27.03.2018
16:00:20
пусть пишет в каком-нибудь apiary
есть еще клевые штуки типа swagger 2 typescript
и подобные

Valentin
27.03.2018
16:01:43
Он - это я, невнимательно прочитал наверное, я фуллстаком буду на этом проекте

Sergey
27.03.2018
16:02:02
да... надо отдохнуть)

Valentin
27.03.2018
16:02:52
Спасибо, посмотрю на то что предложили, что мне покажется удобным то и возьму если особо нет разницы

Konstantin
27.03.2018
16:04:14
@fes0r ну так и все же что делать с версионированием

Sergey
27.03.2018
16:05:17

Konstantin
27.03.2018
16:05:23
сразу говорю урл я не собирался менять, но есть идея принимать версию через заголовок

Sergey
27.03.2018
16:05:36
но наилучшая стратегия - отсутствие версионирования. Дальше вопрос - почему ты не можешь этого делать.
(в респонс, мы пока только про респонс). Хотя даже если про запросы - если ты добавил параметры - логика приложения должна остаться работать потому либо дефолты либо опциональные параметры. По другому никак. В итоге у тебя так или иначен а уровне приложения должна сохраняться обратная совместимость для всех версий твоей API

Konstantin
27.03.2018
16:07:45
работал я с такой апишкой однажды, ну и кореша тоже
много модулей напилили