jnichols-git / jnichols-git/matcha
Implement shorthand error handling
- Dominant language
- Go
- Stars
- 9
- Forks
- 6
- PR merge metrics
- No merged PRs in 30d
Description
[RFC 7807](https://datatracker.ietf.org/doc/html/rfc7807) defines a standard response format for HTTP handling problems. Error handling in Go has always been a bit verbose, but HTTP introduces the additional step of constructing and writing a response each time, which can be very frustrating if you want to have an error that isn't `500 Internal Server Error`. I would like to implement a standard `ProblemResponse` that takes in a ResponseWriter and fields related to 7807 (type string, title string, status code, detail string, instance string) and writes a formatted response with content type `application/problem+json. This function/type should validate that the inputs are OK according to spec (so type and instance must be URIs, etc).
Notably, this should ***not*** write a problem on panics--exposing internal errors can be a serious security issue, and the decision to use RFC 7807 or not should be a conscious one made during regular operation.
Since 7807 is a proposal, I would also like to implement an `ErrorResponse` that just takes in a code and an error instead of the problem fields.
Contributor guide
Assessment
This issue has not been assessed yet.