Все сервисы Хабра

Сообщество IT-специалистов

Ответы на любые вопросы об IT

Профессиональное развитие в IT

Удаленная работа для IT-специалистов

Войти на сайт
  • Все вопросы
  • Все теги
  • Пользователи

Хабр Q&A — вопросы и ответы для IT-специалистов

Получайте ответы на вопросы по любой теме из области IT от специалистов в этой теме.

Узнать больше
другие проекты хабра
  • Хабр
  • Карьера
  • Фриланс
Задать вопрос

Владимир Кудря

Backend
  • 25
    вклад
  • 0
    вопросов
  • 61
    ответ
  • 28%
    решений
Лайки
  • Информация
  • Ответы
  • Вопросы
  • Комментарии
  • Подписки
  • Нравится
  • Достижения
  • Как отследить прокрутку до блока с классом active, если элементов с таким классом несколько (JQuery)?

    Kozack
    Alex @Kozack Куратор тега JavaScript
    Thinking about a11y
    https://developer.mozilla.org/uk/docs/Web/API/Inte...
    Ответ написан более двух лет назад
    Комментировать
    Комментировать
  • Хорошо ли использовать DTO в качестве объекта реквеста для api?

    myks92
    Максим @myks92 Куратор тега PHP
    Нашёл решение — пометь вопрос ответом!
    Сложно понять Вашу картину и что имел ввиду Ваш коллега. Об этом лучше спросить самого коллегу. Однако постараюсь помыслить на эту тему...

    1. Конкретно DTO не совсем применима к API в чистом виде и работе с ней. Более правильно в запрос кидать json, а вот этот json уже маппить на вашу DTO, в которой будет высокоуровневая валидация от симфони и php7.4. Пример И само DTO.

    2. Так как у вас система микросервисная, то DTO передавать по сети точно не нужно. Вы можете использовать DTO внутри своего приложения, но не использовать его по сети. DTO позволяет Вам в сервис/хэндлер/команду передавать не сам Request и не кучу параметров, а своё DTO, которая должна создаваться на основе запроса. Таким образом вы отделяете слои и ответственности. При изменении названий параметров DTO не обязательно их менять в API и наоборот. Нет зависимости и это хорошо! Так же хорошо и для тестируемости.

    3. Если вы упомянули ParamConverter это по сути конвектор параметров, но опять же на уровне приложения, а не между запросами сети) Об использовании его можно почитать в документации симфони. С помощью него можно указать в методе DTO, которую он принимает, а конвектор, написанный вами, знает как это DTO создать на основе ваших переданных данных. То есть вы не DTO передаёте в запрос, а те же параметры, просто этот конвектор делает вам из этих параметров DTO. Использовать его или нет - дело ваше. Вы правильно подметили, что в Yii2 такого нет. Можно заморочиться написать свой, но смысла от этого нет вообще) Использовать DTO я бы рекомендовал. Так как профит будет: разделение слоев, меньшая связанность и возможность валидации. А вот использовать конвектор - решение команды или разработчика. Оно позволяет вам создать вашу DTO на основе переданных параметров. Параметры никуда не денутся, они просто сразу лягут в DTO это один профит - чище код.
    Ответ написан более двух лет назад
    2 комментария
    2 комментария
  • Как разбить карту сайта?

    no_one_safe
    no_one_safe @no_one_safe
    array_chunk
    Ответ написан более двух лет назад
    Комментировать
    Комментировать
  • Найти разметку в laravel проекте?

    colonel
    Глеб Старков @colonel
    Разработчик PHP, Laravel
    Смотрите, куда ссылается роут этой страницы.
    Ответ написан более двух лет назад
    5 комментариев
    5 комментариев
  • Почему не работает smtp google на сайте для регистрации?

    Иван Колесников @kolesnikov_i
    Попробуй включить двухэтапную аутентификацию и создать пароль для приложения
    https://support.google.com/accounts/answer/185833?hl=ru
    Ответ написан более трёх лет назад
    1 комментарий
    1 комментарий
Оценили как «Нравится»
Самые активные сегодня
  • scoffs
    Семён Окулов
    • 14 ответов
    • 0 вопросов
  • vabka
    Василий Банников
    • 13 ответов
    • 0 вопросов
  • CityCat4
    CityCat4
    • 8 ответов
    • 0 вопросов
  • rPman
    • 5 ответов
    • 0 вопросов
  • Drno
    • 4 ответа
    • 0 вопросов
  • Debian KDE
    • 1 ответ
    • 3 вопроса
  • © Habr
  • О сервисе
  • Правила
  • Обратная связь
  • Блог

Войдите на сайт

Чтобы задать вопрос и получить на него квалифицированный ответ.
Войти через центр авторизации