Comments (11)
It's possible to customize error returns already. Changing the error return structure at this point would break many users. For 2.0 (if that ever comes around) we want to have a serious look at the error returns again. See https://grpc-ecosystem.github.io/grpc-gateway/docs/customizingyourgateway.html.
from grpc-gateway.
+1
from grpc-gateway.
+1
from grpc-gateway.
I don't think it is better to lose error code in the message.
So I still slightly prefer err.Error()
. Why do you think grpc.ErrorDesc(err)
is better?
from grpc-gateway.
Maybe it is OK to lose error code in the message and make it cleaner. GRPC error code is translated into HTTP status code anyway in the next few line - https://github.com/gengo/grpc-gateway/blob/master/runtime/errors.go#L88 .
from grpc-gateway.
How about this then:
{
"error": "Unauthenticated",
"code": 16
}
from grpc-gateway.
@floridoo It is not too bad. But I still don't understand what's wrong in the current format of the message.
from grpc-gateway.
If I understand correctly, what people don't like is that the strings rpc error: code =
and desc =
are there in every single error message. They're not the actual content, so including them in the output is potentially pointless, it could be considered noise.
I don't feel very strongly about this either way.
from grpc-gateway.
I prefer structured log than combined log because we can take what we want from logs easily.
So +1 to separate to error
and code
.
from grpc-gateway.
OK. I will accept it if you give me a pull request with the style:
{
"error": "Unauthenticated",
"code": 16
}
from grpc-gateway.
Bumping this issue. Is there any way to get the string representation of the code? If exposed to public users, the code doesn't really provide much value. They would have to know to look it up in the codes proto file. Google Cloud for example returns both which is nice. https://cloud.google.com/apis/design/errors#http_mapping
from grpc-gateway.
Related Issues (20)
- buf: failed to read gRPC API Configuration description: no such file or directory HOT 1
- Moving protos out of protoc-gen-openapiv2/options directory to support Python HOT 3
- Grpc gateway project starter script HOT 1
- Support Service doc comments for OpenApi/Swagger generation HOT 4
- [Feature Request] Provide a legit way to override HTTP Response. HOT 7
- How to get HTTP headers in custom Marshaller? HOT 1
- streaming response does not return text/event-stream content-type HOT 14
- Define "CustomHttpPattern" under "google.api.http", using the plug-in protoc-gen-openapiv2 encountered no swagger documentation generated. HOT 1
- Support Protobuf Editions HOT 7
- Dealing with 304 response without printing errors HOT 5
- How to pass the error 400 in fieldmask if a unknow field is send? HOT 1
- google.protobuf.Empty as response serializes to not empty response on REST client depending on request headers HOT 4
- ERROR: Failed to extract ServerMetadata from context HOT 13
- Placement for unique items in array type is located in the wrong place HOT 1
- Support explicit omitempty annotation in proto HOT 1
- gateway to multiple grpc services defined in two different files HOT 3
- bug: URL Query parameter not bind to `Optional` proto message field HOT 3
- How can register multiple gRPC services in `main.go` at the same time? HOT 1
- Feature request: virtual oneof property HOT 3
- Unable to mark the body parameter as REQUIRED when part of the proto message is path param HOT 2
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 grpc-gateway.