Giter Site home page Giter Site logo

Comments (3)

codegangsta avatar codegangsta commented on August 18, 2024

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.

JamesClonk avatar JamesClonk commented on August 18, 2024

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.

codegangsta avatar codegangsta commented on August 18, 2024

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)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.