Comments (6)
I am thinking this might have happened due to a refactor. probably best to update the documentation, unless we're really missing out on something...
from apipie-rails.
Might be related to my change with returning multiple errors, so either we need to reconsider that change or update the documentation.
from apipie-rails.
@davidwessman Can you update the documentation ?
from apipie-rails.
EDIT Now I realized the point about the different interfaces of param
for ParamMissing
vs ParamInvalid
.
So my answer was probably not on point - sorry.
Previous answer
@mathieujobin I reviewed the README and find that it has been updated to this syntax: ```ruby # ParamError is superclass of ParamMissing, ParamInvalid rescue_from Apipie::ParamError do |e| render text: e.message, status: :unprocessable_entity end ```using e.message
instead of e.param
.
@wozza35 Where did you find the e.param
example?
This is my suggestion to handle all the errors, but I am not sure if it should be in the README or not.
rescue_from Apipie::ParamError do |e|
errors = if e.is_a?(Apipie::ParamMultipleMissing)
e.params.to_h {|p| [p.name, "has an error"]}
else
{e.param => "has an error"}
end
render json: errors, status: :unprocessable_entity
end
from apipie-rails.
So it seems like these errors have always used different interfaces for the params.
ParamInvalid
is initialized like:
apipie-rails/lib/apipie/validator.rb
Lines 75 to 77 in 7cc859e
ParamMissing
is initialized like:
apipie-rails/lib/apipie/validator.rb
Lines 41 to 49 in 7cc859e
apipie-rails/lib/apipie/validator.rb
Lines 359 to 368 in 7cc859e
So it seems like it would make sense the change the ParamInvalid
error to receive the whole ParamDescription
as well.
But that seems like breaking change :/
from apipie-rails.
Inconsistent interface isn't ideal, I convey, but considering the little audience of this gem. I'm not sure its worth fixing.
I guess if enough people vote that its worth it. otherwise, I think this is really minor. or at least, I don't see what exact problem is causes.
from apipie-rails.
Related Issues (20)
- add support to say param1 or param2 required
- Report all missing required parameters instead of just the first HOT 2
- Mark params as deprecated HOT 1
- Enable Style/HashSyntax Ruby 1.9 HOT 2
- Getting So many Warnings while using apipie with Ruby 2.7.7 HOT 15
- Missing translation `apipie.returns`
- How to specify binary-type params HOT 3
- [v1.0] NoMethodError: undefined method `resource_id' for Apipie:Module HOT 2
- Generate multiple swagger-files HOT 7
- Swagger warnings for optional parameters even when using `property` HOT 2
- Swagger generation mixes up controllers with same name: HOT 4
- Swagger JSON cannot parse Array of Hash in params HOT 3
- How do I specify a custom Description, I get "Another API description" HOT 2
- Discrepancy: `params` Defined as Array of Integer in Apipie appears as Array of Strings in Swagger File HOT 4
- Incorrect Representation of Array of Hashes in Swagger Output HOT 3
- How can I define a param group without duplicating what is defined in ActiveRecord model? HOT 1
- How to display an example for a request in Swagger? HOT 2
- Are multiple base url's possible
- "allow_blank" setting is not displayed in api doc HOT 3
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 apipie-rails.