Faraday: Daftar Keinginan Faraday

Dibuat pada 20 Mar 2019  ·  18Komentar  ·  Sumber: lostisland/faraday

Saya ingin mulai mengumpulkan daftar keinginan untuk apa yang ingin kami ubah di Faraday. Belum ada yang konkret di sini.

Faraday v2.0

  • [x] Atur ulang param encoder: lib/faraday/params_encoders/[nested, flat] ?
  • [x] Ekstrak adaptor sebagai permata

    • [x] em-http

    • [x] em-http-ssl-patch

    • [x] em-sinkroni

    • [x] excon

    • [x] httpklien

    • [x] net-http

    • [x] net-http-persistent

    • [x] pelindung

    • [x] rak

    • [x] tifus

Faraday v3.0

  • [ ] Gunakan konstanta SNAKE_CASE secara konsisten
  • [ ] Bunuh Faraday::Utils
  • [ ] Faraday::Connection => Faraday::Client
  • [ ] Hapus struct Opsi yang mendukung properti di Klien/Permintaan/Respons
  • [ ] Hapus env demi properti objek permintaan/tanggapan
  • [ ] Properti #response konsisten pada kelas kesalahan terkait HTTP (RaiseError, RetriableRequest, dll) [#1284]
  • [ ] Matikan autoloading adaptor/middleware demi ruby ​​ole yang bagus
  • [ ] Kunjungi kembali API internal adaptor/middleware (lepaskan semantik adaptor Rak)
  • [ ] Mendesain ulang hubungan Faraday::Connection dan Faraday::RackBuilder

    • [ ] Hapus use / adapter /etc delegasi

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

  • [ ] Atur ulang middleware lib/faraday/middleware/*
  • [ ] Coba lagi mw: ekstrak hal-hal waktu backoff eksponensial
  • [ ] Logging/Instrumentalisasi: dibangun ke dalam Faraday, dapat digunakan oleh _any_ middleware
  • [ ] Gabungkan adaptor persisten net/http dan net/http
  • [ ] Streaming secara default, sambil memberikan akses mudah ke badan respons string yang di-cache
  • [ ]Dukungan proxy HTTP/Socks (perlu diimplementasikan di http libs sendiri)
  • [ ] Dukungan multi-bagian bawaan dengan api yang lebih baik.
  • [ ] Kunjungi kembali permintaan pipelining atau paralel (net-http-pipeline, typhoeus)
  • [ ] Peningkatan kesalahan respons yang konsisten (/cc #1042 )

Komentar yang paling membantu

Luar biasa! Saya benar-benar blank semalam bahwa

Minggu depan saya akan melihat apa yang diubah untuk memindahkan adaptor Net::HTTP menjadi permata, lalu menduplikasi untuk Net::HTTP::Persistent :) Untuk membantu mempercepat hal, saya akan mulai di akun pribadi saya, sekali sepertinya sudah terbentuk saya akan memasang tautan & kami dapat mentransfernya.

Semua 18 komentar

  • buat net-http-persistent lebih mudah diretas dengan menyimpan objek koneksi sehingga kita tidak memerlukan cache global
  • membuat net-http-persistent tidak menggunakan gem ... 90% adalah mengelola net-http yang sudah kita lakukan, jadi satu-satunya yang kita butuhkan adalah logika rescue + reopen yang merupakan beberapa baris kode dan akan menghapus logika kopling/penerjemahan untuk permata, lihat https://github.com/drbrain/net-http-persistent/pull/100
  • izinkan menggunakan net-http-pipeline

Terima kasih, itu adalah saran yang bagus!

buat net-http-persistent lebih mudah diretas dengan menyimpan objek koneksi sehingga kita tidak memerlukan cache global

Ah ya, alasan lain mengapa implementasi semantik Rack Faraday untuk kelas adaptor dan middleware perlu dilakukan. Jika adaptor saat ini adalah properti Faraday::Connection#adapter berumur panjang, adaptor net-http dapat menyimpan objek koneksi. Saya baru saja menambahkan "Kunjungi kembali API internal adaptor/middleware (jatuhkan semantik adaptor Rack)" ke daftar keinginan untuk mendukung ini.

buat net-http-persistent tidak menggunakan permata

Aku di kapal. Terima kasih untuk penunjuk ke PR.

izinkan menggunakan net-http-pipeline

Faraday memang mendukung permintaan paralel, tapi saya tidak yakin apakah kita bisa menggunakan net-http-pipeline untuk mengimplementasikannya untuk net-http . Saya telah menambahkan "Kunjungi kembali permintaan pipelining atau paralel (net-http-pipeline, typhoeus)" ke daftar keinginan.

Untuk pipa: Saya memutuskan untuk tidak menggunakannya dalam proyek saya karena itu berarti
menulis ulang sebagian besar logika handler, sangat rendah untuk saya

Pada Jumat, 31 Mei 2019 pukul 10:31 berisiko bahaya olson [email protected]
menulis:

Terima kasih, itu adalah saran yang bagus!

membuat net-http-persistent lebih mudah diretas dengan menjaga objek koneksi tetap ada
jadi kita tidak perlu cache global

Ah ya, alasan lain mengapa implementasi semantik Rack Faraday untuk
kelas adaptor dan middleware harus pergi. Jika adaptor saat ini adalah
Faraday yang berumur panjang::Koneksi#adaptor properti, adaptor net-http
bisa berpegang pada objek koneksi. Saya baru saja menambahkan "Kunjungi kembali
adapter/middleware internal API (lepaskan semantik adaptor Rack)" ke
daftar keinginan untuk mendukung ini.

buat net-http-persistent tidak menggunakan permata

Aku di kapal. Terima kasih untuk penunjuk ke PR.

izinkan menggunakan net-http-pipeline

Faraday memang mendukung permintaan paralel, tapi saya tidak yakin begitu saja jika kita
bisa menggunakan net-http-pipeline untuk mengimplementasikannya untuk net-http. aku sudah menambahkan
"Kunjungi kembali permintaan pipelining atau paralel (net-http-pipeline, typhoeus)" untuk
daftar keinginan.


Anda menerima ini karena Anda berkomentar.
Balas email ini secara langsung, lihat di GitHub
https://github.com/lostisland/faraday/issues/953?email_source=notifications&email_token=AAACYZ5IS7IRWR45K7IFKL3PYFOILA5CNFSM4HAAQSK2YY3PNVWWK3TUL52HS4DFVREXG43VMEOVBW63LN5WEOVBW63LN5WXHJKTDNOR
atau matikan utasnya
https://github.com/notifications/unsubscribe-auth/AAACYZ6EKR7M4ARR47IAI23PYFOILANCNFSM4HAAQSKQ
.

@grosser Anda mungkin pernah mendengar kami sekarang dalam proses mendorong adaptor dan middleware keluar dari Faraday.
Kami telah melakukan banyak pekerjaan untuk membuatnya semudah mungkin, termasuk mengekspor tes dan memberikan beberapa contoh ( faraday-net_http faraday-http )

Saya bertanya-tanya, mengingat kontribusi Anda sebelumnya, apakah Anda ingin mengambil alih kepemilikan net_http_persistent?
Yang perlu Anda lakukan adalah mengisolasinya ke dalam repo terpisah (ini bisa di bawah pengguna Anda!) seperti yang kami lakukan untuk contoh di atas, dan merilis v1.0 yang persis sama dengan yang sekarang. Kami kemudian akan menambahkannya ke spesifikasi permata Faraday untuk kompatibilitas mundur. Rencananya adalah untuk menghapus dependensi ini untuk Faraday v2.0

Dari sana, Anda bebas mengubah/memperbaikinya sesuka hati Anda dan membuat semua perubahan besar yang Anda inginkan
Tolong beri tahu saya jika Anda tertarik atau tidak ! Saya juga senang membantu dengan migrasi pertama karena saya tetap berencana untuk melakukan pekerjaan itu

kedengarannya mudah, saya akan mencobanya

Pada Thu, 31 Desember 2020 di 04:03 Matt [email protected] menulis:

@grosser https://github.com/grosser Anda mungkin pernah mendengar kami sekarang masuk
proses mendorong adaptor dan middleware keluar dari Faraday.
Kami telah melakukan banyak pekerjaan untuk membuat ini semudah mungkin,
termasuk mengekspor tes dan memberikan beberapa contoh (faraday-net_http
faraday-http)

Saya bertanya-tanya, mengingat kontribusi masa lalu Anda, apakah Anda ingin mengambil
kepemilikan net_http_persistent?
Yang perlu Anda lakukan adalah mengisolasinya ke dalam repo terpisah (ini bisa jadi
di bawah pengguna Anda!) seperti yang kami lakukan untuk contoh di atas, dan rilis v1.0
yang persis sama dengan yang sekarang. Kami kemudian akan menambahkannya ke
Spesifikasi permata Faraday untuk kompatibilitas mundur.

Dari sana, Anda bebas mengubah/memperbaikinya sesuka hati Anda dan
membuat semua perubahan besar yang Anda inginkan
Tolong beri tahu saya jika Anda tertarik atau tidak ! Saya juga senang membantu
dengan migrasi pertama karena saya berencana untuk melakukan pekerjaan itu


Anda menerima ini karena Anda disebutkan.
Balas email ini secara langsung, lihat di GitHub
https://github.com/lostisland/faraday/issues/953#issuecomment-752938926 ,
atau berhenti berlangganan
https://github.com/notifications/unsubscribe-auth/AAACYZYOKFNQGJM5GXZQJMLSXRR73ANCNFSM4HAAQSKQ
.

@grosser Luar biasa! Silakan berteriak jika Anda butuh bantuan!
@julik silakan lihat komentar saya di atas untuk @grosser , apakah Anda ingin melakukan hal serupa untuk adaptor Patron ?

Hai teman-teman, selamat tahun 2021! Saya baik-baik saja mengambil kepemilikan adaptor Patron, masalah yang saya temui ketika mengaturnya adalah bahwa saya menemukan penggunaan tiruan dalam tes bersama sangat sulit untuk dikelola (juga mengingat bahwa webmock menambal Patron di beberapa tempat, tanpa yang benar-benar dipanggil). Ketika melakukan ekstraksi, saya menemukan fakta bahwa saya kemudian juga harus menjadi co-pemelihara penggantian webmock Patron - itu satu hal, dan alih-alih menguji apakah hal yang perlu berfungsi benar-benar berfungsi, saya akan menguji apakah ini bekerja dengan Webmock. Ini agak pribadi, tetapi subjek yang relatif sulit untuk tahun 2020 bagi saya adalah harus meyakinkan orang tentang berbagai hal, dan saya menghabiskan anggaran "meyakinkan" saya untuk tahun itu. Dan banyak terjadi cerukan, dan itu benar-benar menjadi sedikit risiko bagi kesejahteraan saya Saya bisa mendapatkan dari A ke B dengan cara yang sangat aman dan efektif, tetapi jumlah bolak-balik yang bisa saya tangani sepanjang itu jalan jauh lebih rendah dari sebelumnya. Ini juga ada hubungannya dengan fakta bahwa saya adalah bagian dari organisasi yang mengalami pertumbuhan cepat. Saya tidak dalam posisi untuk menuntut agar konsesi diberikan untuk ini – bagaimanapun juga ini adalah masalah pribadi saya. Tetapi saya harus menganggarkan keterlibatan saya dalam berbagai hal.

Jadi: Jika kita dapat meninjau kembali keputusan itu (harus menggunakan webmock alih-alih permintaan aktual, yang merupakan tentang adaptor) saya baik-baik saja mengambil kepemilikan grosir integrasi pelindung.

@julik benar-benar mengerti maksud Anda! Saya ingat kita sudah membahas di masa lalu alasan utama untuk memperkenalkan Webmock, dan harus berurusan dengan 8 adapter yang berbeda pasti salah satunya!

Kami telah membuat pengujian tersedia secara eksternal sehingga migrasi dari adaptor yang dibundel ke adaptor eksternal akan semulus dan semudah mungkin, dan karena Faraday v1.0 masih akan memaketkan adaptor (tetapi disertakan sebagai permata, bukan file di folder lib), maka masuk akal untuk menggunakannya sebagaimana adanya saat mengekstrak repo menjadi permata baru.

TAPI ITU! Setelah permata adaptor v1.0 telah dibuat dan ditambahkan ke Faraday untuk kompatibilitas mundur, seperti yang kami lakukan untuk adaptor Net::HTTP , di situlah Anda dapat memulai jalur v2.0 untuk permata adaptor dan memutuskan apa yang harus dilakukan dengan itu.
Itu, tentu saja, termasuk menulis ulang tes dengan kerangka kerja apa pun yang Anda suka dan menggunakan panggilan nyata, jika Anda mau.
Setelah permata berada di apa yang disebut "tanah pengguna", kami sama sekali tidak memiliki hak untuk mengambil keputusan lagi dan semua keputusan harus diserahkan kepada komunitas dan pemilik permata.

Dan saya akan memberi tahu Anda lebih banyak, kami sudah mendiskusikan secara internal tentang membuat semacam rangkaian "pengujian integrasi" dengan permintaan aktual yang dibuat. Fitur utama dari suite ini adalah (semuanya masih bisa didiskusikan):

  • Gemified / Dikemas sehingga dapat digunakan "plug-and-play" dengan adaptor apa pun
  • Membuat permintaan nyata
  • Dukungan untuk wadah buruh pelabuhan (untuk membantu dengan hal-hal seperti API tiruan dan server proxy)
  • Pengujian kinerja
  • Dukungan Serat / Konkurensi
  • Laporan pemeriksaan fitur (pengujian terhadap fitur dasar "Faraday" dan menghasilkan laporan untuk adaptor untuk menunjukkan mana yang didukung oleh adaptor, berguna bagi pengguna yang mencari yang baru)
  • Terbuka untuk lebih... !

@technoweenie bahkan sudah mulai mengerjakannya: https://github.com/technoweenie/faraday-live

Jadi, jika Anda ingin membantu dengan itu juga, karena saya ingat Anda memiliki beberapa ide keren tentang cara kerjanya, kami juga akan menerima masukan dan bantuan di bagian depan itu

Saya juga senang membantu di mana saya bisa (Terima kasih @olleolleolle telah menunjukkan ini kepada saya) :)

Saya melihat https://github.com/lostisland/faraday/projects/3 - Dalam hal membagi ini menjadi permata, apakah ada rencana untuk membuat organisasi faraday di GitHub untuk menyimpan semua permata individu?

@iMacTia , sebuah cc untukmu

@MikeRogers0 lostisland, org ini, adalah rumah bagi faraday-http , adaptor permata. Mungkin lebih banyak adaptor hanya tinggal di org ini?

Luar biasa! Saya benar-benar blank semalam bahwa

Minggu depan saya akan melihat apa yang diubah untuk memindahkan adaptor Net::HTTP menjadi permata, lalu menduplikasi untuk Net::HTTP::Persistent :) Untuk membantu mempercepat hal, saya akan mulai di akun pribadi saya, sekali sepertinya sudah terbentuk saya akan memasang tautan & kami dapat mentransfernya.

Terima kasih @MikeRogers0 , itu luar biasa untuk didengar, bantuan tambahan apa pun sangat dihargai.
@grosser juga cukup berpengetahuan tentang adaptor Net::HTTP::Persistent telah berkontribusi padanya di masa lalu, jadi jangan ragu untuk tetap mengikutinya.

Mengenai lokasi adaptor, saya pribadi tidak terlalu memikirkan di mana mereka harus tinggal.
Masuk akal bagi saya bagi mereka untuk hidup di bawah akun pribadi seseorang, jika orang itu adalah pengelola utama juga.
Jadi jika Anda senang dengan itu, saya tidak keberatan meninggalkan adaptor di bawah akun Anda

@MikeRogers0 @julik @grosser Saya telah membuat repo template baru untuk mempermudah pembuatan adaptor baru: https://github.com/lostisland/faraday-adapter-template

Harap pertimbangkan ini seperti WIP dan jangan ragu untuk memberikan umpan balik untuk memperbaikinya!

@iMacTia Repo template itu sangat berguna!

Saya mengatur https://github.com/MikeRogers0/faraday-net_http_persistent berdasarkan itu - Saya memang mengaturnya untuk ditransfer ke @lostisland - Apakah Anda ingin melihatnya & memastikan saya tidak melewatkan sesuatu yang jelas? :)

Kerja yang fantastis @MikeRogers0 , dan juga sangat cepat!
Saya sedang memeriksa cara kerja transfer repositori dan ini sedikit lebih rumit saat @grosser sebagai pengelola ke repo itu 👍

Juga, senang mendengar repo template sangat membantu! Jika Anda memiliki umpan balik (apa pun yang tidak jelas, apa pun yang Anda inginkan ada di sana, salah ketik, dll ...) tolong beri tahu saya atau jangan ragu untuk membuka PR terhadapnya

Langkah selanjutnya adalah merilis permata versi pertama ke Rubygems, lepaskan adaptor Net::HTTP::Persistent dari Faraday dan pasang permata baru Anda di sana.
Aku bisa mengurus melepaskan, sampai dengan Anda jika Anda ingin melakukan swapping PR terhadap Faraday atau tidak ( di sini PR tentang bagaimana kita melakukannya untuk Net::HTTP )

image

@iMacTia - Luar biasa, transfer dimulai :)

Juga, senang mendengar repo template sangat membantu! Jika Anda memiliki umpan balik

Saya memang menambahkan Tindakan GitHub di & menulis ulang file Readme. Saya melakukan PR perubahan utama yang saya buat yang menurut saya berguna :) Saya juga menukar Rubocop untuk StandardRB, yang ingin saya dorong.

Langkah selanjutnya adalah merilis permata versi pertama ke Rubygems, hapus Net::HTTP::Persistent adapter dari Faraday dan pasang permata baru Anda di sana.

Luar biasa! Aku akan mengerjakan PR

@MikeRogers0 @grosser repo ditransfer dan Anda berdua seharusnya sudah menerima undangan 👍
https://github.com/lostisland/faraday-net_http_persistent

@MikeRogers0 terima kasih atas umpan baliknya 🙏!

@MikeRogers0 faraday-net_http_persistent sekarang tersedia di Rubygems
https://rubygems.org/gems/faraday-net_http_persistent

Apakah halaman ini membantu?
0 / 5 - 0 peringkat

Masalah terkait

JasonBarnabe picture JasonBarnabe  ·  4Komentar

asf-stripe picture asf-stripe  ·  3Komentar

luizkowalski picture luizkowalski  ·  3Komentar

Lewiscowles1986 picture Lewiscowles1986  ·  4Komentar

t3hk0d3 picture t3hk0d3  ·  3Komentar