Comments (3)
Yeah that was the original plan.
We could handle panics by modifying the Panic middleware in martini to give us all the info and send a X-Martini-Panic
header in the response. This obviously would only occur in development mode. The proxy can then catch that and display it in a nicer way. Kinda hacky but also doesn't tie Martini to Gin.
Thoughts?
from gin.
Hmm yeah, sounds like a good idea.
My plan would have been to constantly watch and look for patterns of a panic message in the stdout/stderr of the app gin is proxying. But just having to look for a specific header is much simpler.
..I just looked at the recovery middleware again and had an idea.
Since we're gonna modify it anyway to provide more information in case of a panic,
why not just have it also return a pretty HTML panic message while in development mode, instead of just the 500 status code as it does currently? This obviously only works if the panic occurs before martini already sent a response, but the same would be true for the special header anyway.
I went ahead and tried it out, it works quite well actually. Check out the PR I made: go-martini/martini#156
:)
This way it will keep gin and martini not dependant on each other and gin only takes care of build errors. It can front and proxy to any similar go web framework.
from gin.
Yeah, thats what I love about gin, it is not martini-specific. Any web app that can take PORT as an environment variable (and really why shouldn't you do that?) will work with gin
from gin.
Related Issues (20)
- Support for args on binary HOT 2
- gRPC usage HOT 2
- error while access to url localhost:8080 HOT 4
- Feature request: Support TLS backends HOT 4
- Go get gin can't find urfave module HOT 4
- flag provided but not defined: -immediate HOT 1
- No connection could be made because the target machine actively refused it
- Upgrade wercker build to use docker version
- Auto assign port for proxy server
- Incorrect Usage: flag provided but not defined: -appPort HOT 3
- Build fails
- Has this project been abandoned? HOT 2
- go
- Broken build HOT 4
- Can add a monitoring build for static files?
- command.ProcessState could be nil
- No error log when use gin with dlv for remote debug. HOT 1
- Perhaps suggest go install command instead of go get HOT 1
- My file content hasn't changed, but gin always executes building.
- This exception occurs frequently
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 gin.