Comments (4)
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.
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.
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.
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)
- after_find called twice HOT 1
- path_prefix option is not used when belongs_to association is set. HOT 5
- add ability to wrap "where" clause HOT 4
- Support for first, limit, group and order HOT 6
- Support for update_attributes missing? HOT 6
- Support for association extensions HOT 1
- undefined method `map' for nil:NilClass for association HOT 6
- Class-level response parsing? HOT 1
- Scopes on JsonApi model
- Find or Create by ID HOT 2
- Have we considered making this gem more SEO friendly? HOT 4
- Attributes don't play nicely with ActiveModel::Dirty in Rails 6
- Safe Navigation Operator &. don't works on nil objects
- I would like to have find_by! in order to raise an exception instead of a nil HOT 1
- HashWithIndifferentUsage is slow, and requires large ActiveSupport dependency
- ruby 2.7, rails 6.0 and faraday 1.0 HOT 3
- Release version 1.1.1 HOT 1
- her-rb.org website inaccessible. HOT 1
- Organizing a fork of her HOT 1
- Execute rescue_from plus her? HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from her.