Faraday: Список желаний Фарадея

Созданный на 20 мар. 2019  ·  18Комментарии  ·  Источник: lostisland/faraday

Я хочу начать собирать список того, что мы хотим изменить в Фарадея. Здесь пока нет ничего конкретного.

Фарадей v2.0

  • [x] Реорганизовать кодировщики параметров: lib/faraday/params_encoders/[nested, flat] ?
  • [x] Извлечь адаптеры как драгоценные камни

    • [x] em-http

    • [x] em-http-ssl-patch

    • [x] em-synchrony

    • [x] excon

    • [x] httpclient

    • [x] net-http

    • [x] net-http-persistent

    • [x] покровитель

    • [x] стойка

    • [x] брюшной тиф

Фарадей v3.0

  • [] Последовательно используйте константы SNAKE_CASE
  • [] Убить Faraday::Utils
  • [] Faraday::Connection => Faraday::Client
  • [] Удалить структуры параметров в пользу свойств в Client / Request / Response
  • [] Удалить env в пользу свойств объекта запроса / ответа
  • [] Согласованное свойство #response классов ошибок, связанных с HTTP (RaiseError, RetriableRequest и т. Д.) [# 1284]
  • [] Убить автозагрузку адаптера / промежуточного ПО в пользу хорошего ole ruby
  • [] Пересмотр внутреннего API адаптера / промежуточного ПО (семантика адаптера drop Rack)
  • [] Редизайн отношений Faraday::Connection и Faraday::RackBuilder

    • [] Удаление делегирования use / adapter / etc

    • [] Faraday::RackBuilder#handlers => Faraday::Connection#handlers

  • [] Реорганизация промежуточного программного обеспечения lib/faraday/middleware/*
  • [] Retry mw: извлечь экспоненциальную задержку тайминга
  • [] Ведение журнала / инструментализация: встроена в Faraday, может использоваться _ любым_ промежуточным программным обеспечением.
  • [] Объедините постоянные адаптеры net / http и net / http
  • [] Потоковая передача по умолчанию, обеспечивая легкий доступ к кэшированным телам строковых ответов.
  • []Поддержка прокси HTTP / Socks (необходимо реализовать в самих http-библиотеках)
  • [] Встроенная поддержка нескольких частей с улучшенным API.
  • [] Пересмотр конвейерной обработки или параллельных запросов (net-http-pipeline, typhoeus)
  • [] Ошибка последовательного ответа (/ cc # 1042 )

Самый полезный комментарий

Потрясающие! Вчера вечером я полностью скрыл, что

На следующей неделе я рассмотрю, что было изменено, чтобы переместить адаптер Net::HTTP в драгоценный камень, а затем скопировать его за Net::HTTP::Persistent :) Чтобы ускорить процесс, я начну в своей личной учетной записи, один раз похоже, что он обрел форму, я поставлю ссылку, и мы можем передать ее.

Все 18 Комментарий

  • сделать net-http-persistent менее хакерским, сохранив объект подключения, чтобы нам не нужен глобальный кеш
  • сделать net-http-persistent не использовать драгоценный камень ... 90% из них управляет net-http, что мы уже делаем, поэтому единственное, что нам нужно, это логика rescue + reopen которая представляет собой несколько строк кода и удалит логику связывания / перевода для драгоценного камня, см. https://github.com/drbrain/net-http-persistent/pull/100
  • разрешить использование net-http-pipeline

Спасибо, отличные предложения!

сделать net-http-persistent менее хакерским, сохранив объект подключения, чтобы нам не нужен глобальный кеш

Ах да, еще одна причина, по которой необходимо отказаться от реализации семантики Rack Фарадея для классов адаптера и промежуточного программного обеспечения. Если текущий адаптер был долгоживущие Faraday::Connection#adapter собственности, net-http адаптер может держать на объект подключения. Я просто добавил «Пересмотреть внутренний API адаптера / промежуточного программного обеспечения (семантика drop Rack adapter)» в список желаний, чтобы поддержать это.

сделать net-http-persistent не использовать драгоценный камень

Я на борту. Спасибо за указатель на пиар.

разрешить использование net-http-pipeline

Фарадей действительно поддерживает параллельные запросы, но я не уверен, можно ли использовать net-http-pipeline для их реализации для net-http . Я добавил в список желаний «Revisit pipelining or parallel requests (net-http-pipeline, typhoeus)».

Для конвейера: я решил не использовать это в своих проектах, потому что это означает
переписать большую часть логики обработчика, так что низкий приоритет для меня

Пт, 31 мая 2019 г., 10:31, риск опасности olson [email protected]
написал:

Спасибо, отличные предложения!

сделать net-http-persistent менее хакерским, сохранив объект подключения
поэтому нам не нужен глобальный кеш

Ах да, еще одна причина, по которой реализация семантики Rack Фарадеем для
классы адаптера и промежуточного программного обеспечения должны уйти. Если текущий адаптер был
долгоживущее свойство Faraday :: Connection # адаптера, адаптер net-http
может держаться за объект связи. Я только что добавил "Revisit
внутренний API адаптера / промежуточного программного обеспечения (семантика перетаскивания адаптера стойки) в
список желаний, чтобы поддержать это.

сделать net-http-persistent не использовать драгоценный камень

Я на борту. Спасибо за указатель на пиар.

разрешить использование net-http-pipeline

Фарадей поддерживает параллельные запросы, но я не уверен, что мы
может использовать net-http-pipeline для их реализации для net-http. я добавил
"Пересмотрите конвейерные или параллельные запросы (net-http-pipeline, typhoeus)", чтобы
Список пожеланий.

-
Вы получили это, потому что прокомментировали.
Ответьте на это письмо напрямую, просмотрите его на GitHub
https://github.com/lostisland/faraday/issues/953?email_source=notifications&email_token=AAACYZ5IS7IRWR45K7IFKL3PYFOILA5CNFSM4HAAQSK2YY3PNVWWK3TUL52HS4DFVREXG43
или отключить поток
https://github.com/notifications/unsubscribe-auth/AAACYZ6EKR7M4ARR47IAI23PYFOILANCNFSM4HAAQSKQ
.

@grosser , возможно, вы слышали, что сейчас мы находимся в процессе вывода адаптеров и промежуточного программного обеспечения из Faraday.
Мы уже проделали большую работу, чтобы сделать это как можно проще, включая экспорт тестов и предоставление нескольких примеров ( faraday-net_http faraday -http )

Учитывая ваш прошлый вклад, мне было интересно, не хотите ли вы стать владельцем net_http_persistent?
Все, что вам нужно сделать, это выделить его в отдельное репо (это может быть ваш пользователь!), Как мы это делали для приведенных выше примеров, и выпустить версию 1.0, которая точно такая же, как текущая. Затем мы добавим его в спецификацию драгоценного камня Фарадея для обратной совместимости. Затем планируется отказаться от этих зависимостей для Faraday v2.0.

Оттуда вы можете изменить / реорганизовать его по своему усмотрению и внести все критические изменения, которые захотите 😄
Пожалуйста, дайте мне знать, если вы заинтересованы или нет 🙌! Я также рад помочь с первой миграцией, так как я все равно планирую выполнить эту работу.

звучит легко, я попробую

В четверг, 31 декабря 2020 г., в 4:03 Мэтт [email protected] написал:

@grosser https://github.com/grosser , возможно, вы слышали, что мы сейчас находимся в
процесс вытеснения адаптеров и промежуточного программного обеспечения из Фарадея.
Мы уже проделали большую работу, чтобы сделать это как можно проще,
включая экспорт тестов и предоставление нескольких примеров (faraday-net_http
Фарадей-http)

Учитывая ваш прошлый вклад, мне было интересно, не хотите ли вы
владение net_http_persistent?
Все, что вам нужно сделать, это выделить его в отдельное репо (это может быть
под своим пользователем!), как мы это делали для приведенных выше примеров, и выпускаем версию 1.0
который в точности совпадает с текущим. Затем мы добавим его в
Спецификация драгоценного камня Фарадея для обратной совместимости.

Оттуда вы можете изменить / реорганизовать его по своему усмотрению и
внесение всех критических изменений, которые вы хотите 😄
Пожалуйста, дайте мне знать, если вы заинтересованы или нет 🙌! Я тоже рада помочь
с первой миграцией, так как я все равно планирую выполнить эту работу

-
Вы получаете это, потому что вас упомянули.
Ответьте на это письмо напрямую, просмотрите его на GitHub
https://github.com/lostisland/faraday/issues/953#issuecomment-752938926 ,
или отказаться от подписки
https://github.com/notifications/unsubscribe-auth/AAACYZYOKFNQGJM5GXZQJMLSXRR73ANCNFSM4HAAQSKQ
.

@grosser Замечательно ! Пожалуйста, кричите, если вам нужна помощь!
@julik, пожалуйста, посмотрите мой комментарий выше для @grosser , не хотели бы вы сделать что-то подобное для адаптера Patron 😄?

Привет, ребята, счастливого 2021 года! Я в порядке, принимая на себя ответственность за адаптер Patron, но проблема, с которой я столкнулся при его настройке, заключалась в том, что я обнаружил, что использование макетов в общих тестах очень трудно управлять (также учитывая, что веб-макет патчи Patron в нескольких местах, без это действительно требуется). Выполняя извлечение, я наткнулся на тот факт, что тогда мне также придется стать соавтором переопределений веб-макетов Patron - это одно, и вместо того, чтобы проверять, действительно ли работает то, что должно работать, я буду проверять, работает ли он работает с Webmock. Это немного личное, но относительно сложной темой на 2020 год для меня была необходимость убеждать людей в вещах, и я исчерпал свой «убедительный» бюджет на этот год. И сильно ушел в овердрафт, и это на самом деле стало небольшим риском для моего благополучия 😄 Я могу добраться от пункта А до пункта Б очень безопасным и эффективным способом, но с количеством возвратно-поступательных движений я могу справиться с этим. путь намного ниже, чем был раньше. Это также связано с тем фактом, что я являюсь частью организации, которая быстро растет. Я не вправе требовать для этого уступок - в конце концов, это мои личные проблемы. Но я должен планировать свое участие в делах.

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

@julik полностью

Мы сделали тесты доступными для внешних пользователей, чтобы переход от встроенных адаптеров к внешним адаптерам был как можно более плавным и простым, и, поскольку Faraday v1.0 по-прежнему будет связывать адаптеры (но включены в виде драгоценных камней, а не файлов в папке lib), тогда имеет смысл использовать их как есть при извлечении репо в новый гем.

НО ЭТО ЭТО! После того, как гем адаптера v1.0 был создан и добавлен в Faraday для обратной совместимости, как мы сделали для адаптера Net::HTTP , вы можете запустить путь v2.0 для гем адаптера и решить Что с этим делать.
Это, конечно, включает в себя переписывание тестов с использованием любой структуры, которая вам нравится, и использование реальных вызовов, если хотите.
Как только драгоценный камень оказывается на так называемой «земле пользователя», мы больше не имеем права принимать решения, и все решения должны приниматься сообществом и владельцами драгоценных камней.

И я скажу вам больше, мы уже обсуждаем внутри компании создание своего рода набора «интеграционных тестов» с реальными запросами. Основные особенности этого пакета (все еще обсуждаются):

  • Gemified / Packaged, чтобы его можно было использовать в режиме plug-and-play с любым адаптером.
  • Делает реальные запросы
  • Поддержка контейнеров докеров (чтобы помочь с такими вещами, как фиктивный API и прокси-серверы)
  • Тестирование производительности
  • Поддержка волокон / параллелизма
  • Отчет о проверке функций (проверяет базовые функции "Фарадея" и создает отчет для адаптера, чтобы показать, какие из них поддерживаются адаптером, полезно для пользователей, которые ищут новый)
  • Откройте для себя больше ...!

@technoweenie даже начала работать над этим: https://github.com/technoweenie/faraday-live

Так что, если вы тоже хотели бы помочь с этим, насколько я помню, у вас было несколько интересных идей о том, как это могло бы работать, мы также будем приветствовать ваши комментарии и помощь на этом фронте 😃

Я также рад помочь, где могу (спасибо @olleolleolle за то, что показал мне это) :)

Я видел https://github.com/lostisland/faraday/projects/3. С точки зрения разделения их на драгоценные камни, есть ли планы создать на GitHub фарадеевскую организацию для хранения всех отдельных драгоценных камней?

@iMacTia ,

@ MikeRogers0 Эта организация, lostisland, является домом для faraday-http , гемифицированного адаптера. Может, больше адаптеров просто живет в этой организации?

Потрясающие! Вчера вечером я полностью скрыл, что

На следующей неделе я рассмотрю, что было изменено, чтобы переместить адаптер Net::HTTP в драгоценный камень, а затем скопировать его за Net::HTTP::Persistent :) Чтобы ускорить процесс, я начну в своей личной учетной записи, один раз похоже, что он обрел форму, я поставлю ссылку, и мы можем передать ее.

Спасибо @ MikeRogers0 , это
@grosser также хорошо осведомлен об адаптере Net::HTTP::Persistent который вносил свой вклад в него в прошлом, поэтому, пожалуйста, не стесняйтесь держать его в курсе.

Что касается расположения адаптеров, я лично не очень-то думаю, где они должны находиться.
Для меня имеет смысл жить под личным аккаунтом, если этот человек также является основным сопровождающим.
Так что если вас это устраивает, я не против оставить адаптер под своей учетной записью 😄

@ MikeRogers0 @julik @grosser Я создал новое https://github.com/lostisland/faraday-adapter-template

Пожалуйста, считайте это очень похожим на WIP и не стесняйтесь оставлять любые отзывы, чтобы улучшить его!

@iMacTia Это

Я настроил https://github.com/MikeRogers0/faraday-net_http_persistent на его основе - я настроил его для передачи в @lostisland - Вы хотите

Фантастическая работа @ MikeRogers0 🎉, к тому же очень быстрая!
Я проверял, как работает передача репозитория, и это немного сложнее при переходе от пользователя к организации, поэтому, если вы все еще готовы передать это в `lostisland, не могли бы вы сначала передать его мне, и я передам его В себе? Затем я добавлю вас и @grosser в качестве сопровождающих к этому репо 👍

Также рад слышать, что репозиторий шаблонов был полезен! Если у вас есть какие-либо отзывы (что-то неясное, все, что вы хотели, опечатки и т. Д.), Пожалуйста, дайте мне знать или не стесняйтесь открывать PR против этого 😄

Следующими шагами будет выпуск первой версии гема в Rubygems, удаление адаптера Net::HTTP::Persistent из Faraday и подключение к нему нового гема.
Я могу позаботиться о выпуске, на ваше усмотрение, хотите ли вы провести пиар подмены против Фарадея или нет ( здесь пиар о том, как мы это сделали за Net::HTTP )

image

@iMacTia - Отлично, перенос начался :)

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

Я добавил действие GitHub и переписал Readme. Я напомнил о внесенных мною основных изменениях, которые, на мой взгляд, могут быть полезными :) Я также заменил Rubocop на StandardRB, что я хотел бы поддержать.

Следующие шаги - выпустить первую версию гема в Rubygems, удалить адаптер Net :: HTTP :: Persistent из Faraday и подключить туда ваш новый гем.

Потрясающие! Я займусь пиаром

@ MikeRogers0 Репозиторий @grosser перенесен, и вы оба должны были получить приглашение 👍
https://github.com/lostisland/faraday-net_http_persistent

@ MikeRogers0 спасибо за отзыв 🙏!

@ MikeRogers0 faraday-net_http_persistent теперь доступен на Rubygems 🎉
https://rubygems.org/gems/faraday-net_http_persistent

Была ли эта страница полезной?
0 / 5 - 0 рейтинги