@prophp7

Страница 1253 из 1387
Denis
09.08.2018
20:03:08
ну на расте и хаскеле как раз таки пишут) их ругают за другие вещи)
хз) когда довелось писать на расте - язык крутой, экосистемы нету) так что хз что там пишут

Denis
09.08.2018
20:03:20
но поднять блокчейн на расте это да) за милую душу)

Google
Sergey
09.08.2018
20:03:38
она молодая очень но все там есть

Denis
09.08.2018
20:04:10
ну в плане стороних пакетов) как-то маловато, большая часть в версия 0.0.x и непонятно развиваются или нет)

но язык хорош, после пхп особенно

Sergey
09.08.2018
20:07:20
хз, я иногда брожу по гитхабу в поисках интересных php-ных либ и больше грущу. А на расте видел уже с десяток интересных проектов. По поводу того что они все 0.0.x - ну да... с другой стороны найди мне на php либу такого уровня: https://github.com/diesel-rs/diesel

Denis
09.08.2018
20:08:15
я больше напрягался когда приходилось допиливать либы на расте, чем искать омр под пыху)

Igor A.
09.08.2018
20:27:00
Всем привет. Скажите, есть ли аналог аргумент резолвера симфонийского для ответов? То есть чтобы респонсы определенного типа ловить, на их основе генерировать другие и отдавать. Простите, если это общеизвестно, а я плохо гуглю, ткните меня туда :)

F01134H
09.08.2018
20:30:01
Скажи для начала чем тебе симфоневский не угодил

Igor A.
09.08.2018
20:31:04
Скажи для начала чем тебе симфоневский не угодил
Угодил. Я хочу не для реквеста, а для респонса. Пока нашел только вариант слушать ивент и там проверять тип респонса.

Andrew
09.08.2018
20:31:14
Всем привет. Скажите, есть ли аналог аргумент резолвера симфонийского для ответов? То есть чтобы респонсы определенного типа ловить, на их основе генерировать другие и отдавать. Простите, если это общеизвестно, а я плохо гуглю, ткните меня туда :)
к примеру есть старый и нерекомендуемый TemplateListener, который берет массив, возвращаемый из экшна и рендерит темплейт, который указан в аннотации\конфиге экшна, с этими данными.

F01134H
09.08.2018
20:31:16
А, неправильно прочитал

Google
Sergey
09.08.2018
20:32:11
doctrine
там куча говнокода

Igor A.
09.08.2018
20:32:24
у симфони есть kernel.view ивент, а реализовать что-то похожее на аргумент ресолверы в целом не составляет проблем
А насколько это хорошая практика? Ловить там все респонсы определенного типа и вместо них делать другие.

Sergey
09.08.2018
20:33:19
А насколько это хорошая практика? Ловить там все респонсы определенного типа и вместо них делать другие.
ну я так делаю. я возвращаю какие-то штуки и дальше смотрю - если это респонс - не трогаю. Если это DTO - кидаю в сериалайзер. Могу сделать что-то типа если это указание слепить какой-то респонс - попросить какой-то сервис слепить этот респонс (а там типа изи сделать через теги)

у меня есть контроллеры которые ничего про реквест или респонс не знают - все вынесено на уровень выше

Andrew
09.08.2018
20:33:54
Если старый и не рекомендуемый, то не подходит. :)
это пример. Конкретно этот листнер не рекомендовалось использовать потому что он добавляет +30мс к времени ответа, но можно там подсмотреть kernel.view.

Sergey
09.08.2018
20:36:32
Graphql пока нет (оч медленно пытаюсь прикрутить) но разница как бы... Ее нет особо

Shaun
09.08.2018
20:39:55
Не ну просто был бы graphql тогда понятно что контроллерам не обязательно знать про реквест/респонс так как они то ничего особо не решали, а обычный рест тогда непонятно почему контроллер не знает что и в каком виде он отдаёт

не вижу преимуществ писать return $someDto; и обрабатывать это в лисенере вместо условно return $someDataMapper->toJson($dto);

Sergey
09.08.2018
20:47:41
а я не вижу разницы между "выплевывать json в контексте http api и выплевывать json в контексте graphql"))

Shaun
09.08.2018
20:59:47
Ну с graphql может быть удобно собирать ответ в лисенерах, я просто думал о такой штуке что бы генерить например класс Schema и что бы он имплементил интерфейсы там например PostsInterface, PostAuthorInterface ну и там методы нужные, к примеру postsOffset postsLimit postsSerializationStrategy, а в лисенерах уже смотреть на этот класс и его интерфейсы, и соответственно формировать респонс, но это наркомания

Sergey
09.08.2018
21:00:54
в том варианте который ты описал (в силу того что я плохо понял как это будет работать) - наркомания. А так процесс сборки респонса никак не отличается, graphql у тебя, json по http или что-то еще

короч, ладно. Я не готов сегодня что-то на эту тему вещать.

Igor A.
10.08.2018
06:09:56
Всем привет. Вчера говорили о возвращении из контроллера DTO и последующей обработки в листенере. Скажи, пожалуйста, как ты заставляешь симфони не ругаться на то, что контроллер не возвращает респонс?

Igor A.
10.08.2018
06:13:01
Я понимаю, да. Только вот при попытке вернуть что-то отличное от респонса из контроллера будет ошибка The controller must return a response.

Bohdan
10.08.2018
06:13:46
ну а откуда идёт эта ошибка, по - твоему?

Google
Valentin
10.08.2018
06:14:10
Не, ты можешь вернуть что угодно, но в конечном результате должен привести в листерерах это к Response который ожидает симфони

Bohdan
10.08.2018
06:14:33
её наверняка отдаёт другой слушатель если повесишь свой с приоритетом выше и сделаешь в нем Response - все будет ок

Igor A.
10.08.2018
06:14:33
ну а откуда идёт эта ошибка, по - твоему?
Я полагал что кернел контролирует прежде чем отдать в листенер.

Окей. Спасибо, будем попробовать.

Bohdan
10.08.2018
06:15:17
я думаю, что если и контролирует, то после листенеров но не проверял

Igor A.
10.08.2018
06:30:37
Ох, надо было не на kernel.response а на kernel.view вешать лисенер, насколько я понимаю.

Igor A.
10.08.2018
06:46:09
Ага. Спасибо. Еще не до конца понял, могу ли как-то в конкретных трансформерах добиться тайпхинтинга. Как ты решаешь это проблему?

Sergey
10.08.2018
06:46:55
Плачу, и не решаю

Это нельзя без дженериков решить

Igor A.
10.08.2018
06:47:27
Досадно.

Бушаев Вячеслав
10.08.2018
09:56:44
Коллеги! никто не сталкивался с проблемой дебага в phpstorm? шторм подхватывает сессию икс-дебага, но при любом шаге просто останавливает сессию.. в браузере пусто

Борис
10.08.2018
10:12:41
Может какой fatal. Смотри все логи. Сам пых может падать если баг в иксдебаг

Бушаев Вячеслав
10.08.2018
10:17:19
в конфигах и само окружение не менялось, логи пустые... Видимо система собирается помереть.. и необходима переустановка

Patrik
10.08.2018
10:37:58
Вопрос, клиенту нужно отдавать профиль юзера и только текущего, чужие профили клиенту не нужны. эндпоинт с доступом по токену в котором айди юзера в пейлоде, хочу сделать просто /profile и отдавать нужный профиль в зависимости от того кто шлет запрос, но это не по понятиям реста?

Не хочу делать колбасу из /user/{id}/profile и т.д.

Petr
10.08.2018
10:40:40
Не хочу делать колбасу из /user/{id}/profile и т.д.
Читай про HATEOAS, например про HAL JSON. Поможет избавиться от вложенных ресурсов и подскажет как красиво делать перелинковку ресурсов

Patrik
10.08.2018
10:40:46
Ну тут как минимум один и тот же урл отдает разные ресурсы

Google
Sergey
10.08.2018
10:44:48
потому что осознаешь что все эти HATEAS работают только для гипертекста

Patrik
10.08.2018
10:45:02
Это будет потом, а сейчас я как раз с rpc пытаюсь слезть))

Sergey
10.08.2018
10:45:58
Вопрос, клиенту нужно отдавать профиль юзера и только текущего, чужие профили клиенту не нужны. эндпоинт с доступом по токену в котором айди юзера в пейлоде, хочу сделать просто /profile и отдавать нужный профиль в зависимости от того кто шлет запрос, но это не по понятиям реста?
с рестом тут два момента: 1. делая подобное ты делаешь невозможным использование http кэша (уверен тебе тут насрать) 2. делая подобное ты заставляешь клиент хардкодить ссылки (от чего ты не уйдешь никак и никакие HATEOAS тебе тут не помогут)

Patrik
10.08.2018
10:47:08
Да, hateoas тоже не понял чем тут поможет, про кеш знаю, действительно не нужен, но прям коробит что один url уже не будет однозначно идентифицировать один ресурс

Sergey
10.08.2018
10:47:55
ну то есть как. можно сделать полное self discovery урлов но это не сильно помогает в условиях мобильных приложений и структуры данных те же тебе всеравно придется хардкодить, а это невилирует любой профит от всех этих загонов. А потому повторюсь - HATEOAS работает только и только в условиях гипертекста, когда данные и метаданные помогают клиенту интерпритировать контет (+ code on demand для ситуаций когда не может)

тогда у тебя полная инкапсуляция на сервере и все круто и красиво. И единственная хрень которая так работает - браузер

и то люди сча SPA почему-то пишут (потоу что web сломан))

Dmitry
10.08.2018
10:49:02
Есть ли какие-то бест-практис гайды по созданию REST API. Книжка Стирджеона норм? https://leanpub.com/build-apis-you-wont-hate

Patrik
10.08.2018
10:49:27
Норм, читал недавно

Admin
ERROR: S client not available

Sergey
10.08.2018
10:49:32
тебе должно быть удобно пользоваться этой апишкой

а для этого ты должен понимать как апишкой будут пользоваться) потому сейчас модны всякие graphql потому что они позволяют делигировать часть ответственности на клиент))

Patrik
10.08.2018
10:50:46
Ну вот и я из соображений удобства, клиенту нужен просто один профиль того кто авторизован, нет необходимости его вобще как-то идентифицировать

Petr
10.08.2018
10:51:01
а через год ты разачаруешься и вернешься к RPC
Не знаю, мы уже полтора года в команде HAL практикуем, пока проблем не встречали. И фронденщики с мобильщиками довольны

Sergey
10.08.2018
10:53:18
Ну вот и я из соображений удобства, клиенту нужен просто один профиль того кто авторизован, нет необходимости его вобще как-то идентифицировать
там будет больше трабла с отслеживанием изменений структур данных. Во всяком случае если у тебя схема сильно меняется

Не знаю, мы уже полтора года в команде HAL практикуем, пока проблем не встречали. И фронденщики с мобильщиками довольны
мне было бы любопытно узнать за счет чего они довольны (за счет HAL или за счет того что предсказуемая апишка? мне больше кажется второе и сам по себе HATEOAS тут не причем, но он косвенно помогает тебе добиться ценных качества вроде дока, схема, предсказуемость, консистентность)

Patrik
10.08.2018
10:55:09
Мм не уверен что понял, если меняется схема это уже вопрос версионирования, как это зависит от того под одним или разными урлами сидят однотипные ресурсы или нет?

Sergey
10.08.2018
10:55:47
но это надо вникать, разбираться... мой опыт подсказыавает что достаточно просто иметь: - консистентную схему - то есть всегда одинаково хэндлить на уровне схемы списки, детали и т.д. что бы это было расширяемо и предсказуемо - документацию - насколько легко следить за актуальностью доки и следить за обратной совместимостью

и есть куча способов этого добиться, но говорить что HATEOAS all the things это глупо

Google
Sergey
10.08.2018
10:56:31
и да, даже с HATEOAS это всеравно будет RPC)

Patrik
10.08.2018
10:56:46
Вот это кстати аргумент, чисто ради консистентонсти не делать эндпоинтов которые идентифицируют ресурсы по разному

Patrik
10.08.2018
10:57:34
Могу, на все реквесты и респонсы есть json-schema об которую апи сама себя валидирует

Sergey
10.08.2018
10:57:42
норм

Patrik
10.08.2018
10:57:52
И дока с той же схемы

Ладно, не буду городить, пусть будет чуть менее удобно но более предсказуемо, спасибо за ваше мнение

Dmitry
10.08.2018
11:01:55
А подскажите с решением такого кэйса: есть endpoint /documents, например, для роли employer он имеет усеченный набор параметров, для роли manager более полный. Как документировать такое в swagger?

Bohdan
10.08.2018
11:03:59
опциональные параметры?

Patrik
10.08.2018
11:06:25
Та же фигня у api blueprint, схему умеет генерить с oneof а пример в доке пустой делает

Напоролся на это когда хотел показать секцию included у json-api

Но там хотя бы можно описать без one of, просто массив и какого типа в нем могут быть обьекты, тогда будет все ок в доке но наоборот пустая json-schema

Нашел еще такое решение, у инстаграмма, /users/self отдает всегда свой профиль по аксес токену

Не такая уж бредовая идея получается

Gmail - /users/me

Valentin
10.08.2018
11:50:46
Тоже юзаю /users/me но только для тестов, типа что бы получить текущего юзера по токену (/users/me?apiToken=...) потому что при каждом тесте у моего фикстурного юзера разный ид и это очень удобно, но на проде нет смысла юзать этот ендпоинт, всё равно фронт знает ид своего пользователя если он аутентифицирован

Dmitry
10.08.2018
11:50:50
кто в логсташ логирует?

Patrik
10.08.2018
11:55:49
Dmitry
10.08.2018
11:56:58
он локально (относительно кода) стоит и фигачит в удаленный эластик или рядом с эластиком его поставили и фигачите в него из кода по IP?

Страница 1253 из 1387