169 похожих чатов

@Toleckk Как там на редаксе нормально сделать что-то подобное челу? const

$apiType = createStore(‘real’);
const $baseUrl = combine(
$baseUrls,
$apiType,
(urls, type) => urls[type]
);

const requestFx = attach({
source: { baseUrl: $baseUrl },
effect: ({ baseUrl }, params) => axios.request({ baseUrl, …params })
});

36 ответов

18 просмотров

apiType положить в слайс, combine заменить на селектор, requestFx на thunk с выбором baseUrl из стора через селектор(getState())

Dmitry Remezov
@Zmiterr 💁‍♀️

Думал такой вариант, но в санке инстанс аксиоса создавать показалось дичью

Zmiter
Думал такой вариант, но в санке инстанс аксиоса со...

Абстрагировать http client от санок, эффекторов и т.д. надо бы. А то рил дич энивей

Dmitry-Remezov Автор вопроса
Den Pol
Абстрагировать http client от санок, эффекторов и ...

Чтобы что? У него буквально логика endpoint -> http client -> baseUrl (from state)

Dmitry Remezov
Чтобы что? У него буквально логика endpoint -> ht...

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

Den Pol
Чтобы, к примеру, клиент был переиспользуемым со в...

Не стоит делать лишнюю работу на будущее, которая может не оказаться нужной. Делайте всё как можно проще

Андрей Звёздочка
Не стоит делать лишнюю работу на будущее, которая ...

Я бы согласился, если на проекте используется один апи метод )

Den Pol
Я бы согласился, если на проекте используется один...

Ты путаешь простоту для разработчика и простоту для машины. Ты пытаешься сделать код простым для машины, а не для разараба. Не надо так. Да, код может быть неоптимальным, но достаточным. Каждой оптимизации своё время

Андрей Звёздочка
Ты путаешь простоту для разработчика и простоту дл...

Ты забыл про масштабируемость, она тоже должна быть в коде

Dmitry-Remezov Автор вопроса
Dmitry Remezov
В чем масштабируемость-то?

Переиспользуемость хттп клиента

Sergey Grishchenko
Имхо важно чтобы он был стейтлесс

А как же контроллеры для отмены лишних запросов? ))

Den Pol
А как же контроллеры для отмены лишних запросов? )...

Сам клиент стейтлесс, запрос стейтфул

Sergey Grishchenko
Сам клиент стейтлесс, запрос стейтфул

Как отменить запрос, если другой про него не знает?

Den Pol
Как отменить запрос, если другой про него не знает...

А что ты хочешь отменить на уровне фетчера?

Sergey Grishchenko
А что ты хочешь отменить на уровне фетчера?

Предыдущий такой же и/или какой-нибудь другой

Dmitry-Remezov Автор вопроса
Den Pol
Предыдущий такой же и/или какой-нибудь другой

какой-нибудь другой будет отменяться по бизнес-логике а такой же - состояние конкретного запроса

Например, аполло при одинаковых запросах не отменяет старый запрос, а просто не кидает новый

Зачем бизнес логике знать про состояние запросов?

Dmitry-Remezov Автор вопроса
Den Pol
Зачем бизнес логике знать про состояние запросов?

Так это твой тейк про “отменить какой-нибудь другой”

Den Pol
В новом обновленные данные могут быть

Ну это прекрасно, но есть популярный фетчер аполло, который несколько лет уже содержит именно такую логику

Dmitry Remezov
Так это твой тейк про “отменить какой-нибудь друго...

Ок, перефразирую, зачем бизнес логике знать про все контроллеры?

Den Pol
Ок, перефразирую, зачем бизнес логике знать про вс...

А зачем апи-клиенту знать про логику конкретно твоей фичи?

Sergey Grishchenko
А зачем апи-клиенту знать про логику конкретно тво...

Я за абстракцию уровней: апи и бизнес логики приложухи

Dmitry-Remezov Автор вопроса
Den Pol
Ок, перефразирую, зачем бизнес логике знать про вс...

Какие контроллеры? Ты про запросы? Ну затем, что они оттуда вызываются

Den Pol
Я за абстракцию уровней: апи и бизнес логики прило...

Я считаю что дедупликация и кеширование в апи-клиенте МОГУТ БЫТЬ, но возможность отменять другие запросы -- это перебор

Sergey Grishchenko
Я считаю что дедупликация и кеширование в апи-клие...

Ну если тебе это не нужно, я не спорю ) мне контроль на доп уровне требуется. И работает отлично.

Dmitry-Remezov Автор вопроса
Den Pol
Ну если тебе это не нужно, я не спорю ) мне контро...

Что делаешь, если отменять запрос Х надо после запроса У или триггера Z, если выполняется условие K?

Den Pol
Ну если тебе это не нужно, я не спорю ) мне контро...

Зачем это в принципе может понадобиться?

Dmitry Remezov
Что делаешь, если отменять запрос Х надо после зап...

Мне кажется, что он имеет в виду возможность по тегу какому-нибудь отменить запрос извне, а не что апи-клиент сам по себе определяет что и когда ему надо отменять. Если второе, то это оч шаткая система

Dmitry Remezov
Что делаешь, если отменять запрос Х надо после зап...

Нет. Бэк не всегда отвечает успешно - происходит retry. Иногда его нужно отменять (в связи с изменившимся состоянием, но это не важно - хттп клиент не знает про состояние аппки, зато владеет всем, что позволит ему не делать лишнего)

Похожие вопросы

Обсуждают сегодня

А еще в перле можно уже @arr1 + @arr2?
Sergei Zhmylove
53
я не магистр хаскеля, но разве не может лейзи тип конвертнуться в не-лейзи запросив вычисление содержимого прям при инициализации?
deadgnom32 λ madao
100
Подскажите, где смотреть результат выполнения программы? Код: ;.686 ;Система команд процессора 686 ;.MODEL FLAT,stdcall ;Модель памяти плоская, станда...
Егор Анелькин
5
Привет всем. появился вопрос. Разрабатываю сайт, в данный момент он запущен. Хостинг beget. Добавляю на сайт яндекс метрику с помощью полей client-settings (взято отсюда http...
Andrew
2
Добрый день подскажите пожалуйста может кто то сталкивался с ошибками Sentry 22.10.0 развернутым из helm чарт в Kubernetes? Изначально 3 дня назад очень стало много событий ух...
Tire4 Finist Devops
1
;.686 ;Система команд процессора 686 ;.MODEL FLAT,stdcall ;Модель памяти плоская, стандартный ;вызов процедуры ;option casemap:no...
Егор Анелькин
1
почому оно не работает?
Vi Chapmann Chapmann
19
Так а кто может спарсить всех участников чата? Идишники
Magic
18
а как ловят такое ghci> res <- getPos2 urlt 0 (alist !! 0) 200 ghci> res SearchAtom (Search "www.google.com" "/search?q=" "Haskell") "haskell.org" (SearchTS [(2024-05-06 07:...
Fedor
14
Есть вопрос: допустим есть железка с каким-то интерфейсом(допустим usb), но как по этому интерфейсу железкой управлять неизвестно, прог нету, а управлять очень хочется надо. К...
Mixail Frolov
15
Карта сайта