Comments (2)
I need get all interface doc by httprouter, including, but not limited swagger, Now, is there any other ready-made solution?
from httprouter.
Here's a vanilla solution, no server side dependencies:
Have a folder called swagger
and use a static route to serve your swagger.yaml
or swagger.json
file and add this html file in:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<meta name="description" content="SwaggerUI" />
<title>SwaggerUI</title>
<link
rel="stylesheet"
href="https://unpkg.com/[email protected]/swagger-ui.css"
/>
</head>
<body>
<div id="swagger-ui"></div>
<script
src="https://unpkg.com/[email protected]/swagger-ui-bundle.js"
crossorigin
></script>
<script
src="https://unpkg.com/[email protected]/swagger-ui-standalone-preset.js"
crossorigin
></script>
<script>
window.onload = () => {
var url = window.location.search.substring(1);
if (url.length == 0) {
url = "swagger.yaml";
}
window.ui = SwaggerUIBundle({
url: url,
dom_id: "#swagger-ui",
deepLinking: true,
presets: [SwaggerUIBundle.presets.apis, SwaggerUIStandalonePreset],
plugins: [SwaggerUIBundle.plugins.DownloadUrl],
layout: "StandaloneLayout",
});
};
</script>
</body>
</html>
Note: if you're using .json change the swagger.yaml to swagger.json.
Then static serve the folder from your httprouter
router.ServeFiles("/swagger/*filepath", http.Dir("swagger"))
This will serve the swagger ui file from localhost:4000/swagger/swagger.html
Aside: For generation from source code I use
Use swag or similar to annotate your route handlers
swag init -g cmd/api/main.go -o ./swagger
outputs swag files to a folder called swagger
If anyone wants an example repo, comment asking for one, and I'll make one when I have time
from httprouter.
Related Issues (20)
- Run into 404 instead of graphql playground when using gqlgen with httprouter HOT 1
- How to use this custom middleware HOT 1
- Matching multiple named parameters HOT 1
- ServeFiles not able to serve static files HOT 2
- How can I receive multiple parameters in GET request? HOT 3
- Is it possible to bind one router to some path in another router? HOT 2
- is it possible to get the registered path? HOT 7
- panic: '/hello/:name' in new path '/hello/:name' conflicts with existing wildcar
- Why make catchAll form so special HOT 2
- httprouter.ParamsWithContext(r.Context()) is returning []
- Question: will re-registering a handler work properly?
- Fails with "embed" package HOT 1
- Dump all registered routes HOT 3
- Improve longestCommonPrefix and add unit tests HOT 1
- Feature Request: Support multi-wildcard names for same tree branch HOT 1
- panic: path must begin with '/' in path 'GET'
- List all registered endpoint httprouter
- what is the empty path node used for? HOT 1
- Unable to load jsx files because "file.jsx was blocked because of a disallowed MIME type text/plain" 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 httprouter.