Git Product home page Git Product logo

Comments (4)

remi avatar remi commented on May 27, 2024

You’re right, builder.use does not work for that case. I’ll update the documentation. But I agree that builder.insert(0, MyAuthentication) is not pretty. However, I submitted this pull request for Faraday a few hours ago. We’ll see how it will play.

The simplest solution would be for Her to not include any default middleware. When setting up Her::API, the user would have to include all the needed middleware:

Her::API.setup :base_uri => "https://api.example.com" do |builder|
  builder.use FaradayMiddle::OAuth
  builder.use Her::Middleware::FirstLevelParseJSON
  builder.use Faraday::Request::UrlEncoded
  builder.use Faraday::Adapter::NetHttp
end

It would require more work for developers, but it would give them more control. What do you think?

from her.

remi avatar remi commented on May 27, 2024

I decided to drop all default middleware and to let the user define the entire stack. I’m closing the issue as the documentation is now accurate :) Thanks!

from her.

tysonmote avatar tysonmote commented on May 27, 2024

FWIW, I think there's still use in allowing sensible defaults instead of requiring the stack to be configured every time. When I get some more time, I'm going to play around with it and hopefully come up with something that makes it easy to configure the stack without engineering something crazy.

from her.

remi avatar remi commented on May 27, 2024

Cool, let me know when you have something working.

At first I thought it would be a pain to require the entire stack each time you need to initialize the API, but for the developer it’s a one-time thing. The block is in config/initializers/her.rb or something similar and is never touched again.

from her.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.