Size: a a a

2020 March 25

Д

Дмитрий in Yii Framework 3
оно специально было таким спроектированно, чтобы ты мог сделать return $object; в контроллере
источник

DS

Dmitriy S in Yii Framework 3
Вернее их реализации здесь
источник

Д

Дмитрий in Yii Framework 3
вместо того, чтобы return new Response($converter->convert($object));
источник

DS

Dmitriy S in Yii Framework 3
Дмитрий
вместо того, чтобы return new Response($converter->convert($object));
Можно сделать ResponseConverterInterface параметром конструктор ActionCaller, соответственно в контейнере ему будет назначен соответствующий ResponseConverter и он предварительно сконвертит риспонс перед отдачей.
источник

DS

Dmitriy S in Yii Framework 3
Dmitriy S
Можно сделать ResponseConverterInterface параметром конструктор ActionCaller, соответственно в контейнере ему будет назначен соответствующий ResponseConverter и он предварительно сконвертит риспонс перед отдачей.
Поскольку модуль апи у нас будет иметь свой контейнер, то там ему мы можем назначить соответсвенно JsonResponseConverter или XmlResonseConverter и т.д.
источник

DS

Dmitriy S in Yii Framework 3
Тогда, кстати такое можно будет использовать не только в рест-апи
источник

DS

Dmitriy S in Yii Framework 3
И еще тогда можно будет делать как ты хотел
Route::get('\post', [PostController::class, 'index'], $container)->responseConverter(JsonResponseConverter::class)
То есть, можно вручную задать конвертер каждому роуту
источник

Д

Дмитрий in Yii Framework 3
для роута "responseConverter" это слишком
источник

DS

Dmitriy S in Yii Framework 3
Дмитрий
для роута "responseConverter" это слишком
Почему? У тебя могут быть роуты для ajax запросов в контроллере наряду с обычными
источник

DS

Dmitriy S in Yii Framework 3
И кстаи, у тебя по факту есть конвертеры уже, только ты их назвал ResponseFactory
источник

DS

Dmitriy S in Yii Framework 3
Ну и это не скоуп реста, они должны быть в yii-web
источник

DS

Dmitriy S in Yii Framework 3
Или вот еще пример, у тебя в контейнере модуля апи стоит JsonConverter, и у тебя есть маршрут api/doc где ты хочешь вывести сваггер в формате html. Ты просто указваешь HtmlConverter прямо ему в маршруте. В итоге везде будет отдавать в формате json, а дока будет в html
источник

AM

Alexander Makarov in Yii Framework 3
источник

AM

Alexander Makarov in Yii Framework 3
// Чуть передохну и дальше займусь докой.
источник

RM

Rustam Mamadaminov in Yii Framework 3
👍
источник

Д

Дмитрий in Yii Framework 3
Dmitriy S
Или вот еще пример, у тебя в контейнере модуля апи стоит JsonConverter, и у тебя есть маршрут api/doc где ты хочешь вывести сваггер в формате html. Ты просто указваешь HtmlConverter прямо ему в маршруте. В итоге везде будет отдавать в формате json, а дока будет в html
максимально убрать все классы из определения маршрутов. хочешь html - пиши format=html, а не всякие конвертеры. я думаю, это понятно.
по скопу согласен, но пока не используется и будет здесь. можем задачку поставить :)
источник

Д

Дмитрий in Yii Framework 3
Dmitriy S
И кстаи, у тебя по факту есть конвертеры уже, только ты их назвал ResponseFactory
угу, конвертеры, только тот конвертер это мидлвар
источник

DS

Dmitriy S in Yii Framework 3
Дмитрий
максимально убрать все классы из определения маршрутов. хочешь html - пиши format=html, а не всякие конвертеры. я думаю, это понятно.
по скопу согласен, но пока не используется и будет здесь. можем задачку поставить :)
Я добавлю в yii-web, я все равно над ним сейсчас работаю
источник

DS

Dmitriy S in Yii Framework 3
Дмитрий
угу, конвертеры, только тот конвертер это мидлвар
Он неверно назван. Это не конвертер, а RestApiActionCaller
источник

Д

Дмитрий in Yii Framework 3
Dmitriy S
Он неверно назван. Это не конвертер, а RestApiActionCaller
тут нет ничего rest-api-шного, сам же это подтвердил :)
источник