Documentation
¶
Overview ¶
Package apidoc provides html document builder for http requests and responses.
Index ¶
- func DefaultStyle() *Element
- func JsonResponse(resp *http.Response) *Element
- func JsonResponseFrom(h http.Handler, r *http.Request) *Element
- func RawRequest(r *http.Request) *Element
- func RawResponse(resp *http.Response) *Element
- func RawResponseFrom(h http.Handler, r *http.Request) *Element
- type Doc
Examples ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func DefaultStyle ¶
func DefaultStyle() *Element
func JsonResponse ¶
func RawRequest ¶
func RawResponse ¶
Types ¶
type Doc ¶
func NewDoc ¶
NewDoc returns a documentation generator for the given router
Example ¶
package main
import (
"fmt"
"net/http"
"os"
"github.com/gregoryv/web"
"github.com/gregoryv/web/apidoc"
)
func someRouter(w http.ResponseWriter, r *http.Request) {
if r.Method == "GET" {
w.WriteHeader(http.StatusOK)
fmt.Fprint(w, `{"animal": "Goat","age": 10, "friendly": "hell no, not this one"}`)
}
if r.Method == "POST" {
w.WriteHeader(http.StatusCreated)
fmt.Fprint(w, `{"message": "added"}`)
}
}
func main() {
doc := apidoc.NewDoc(http.HandlerFunc(someRouter))
body := web.Body(
doc.NewRequest("GET", "/", nil),
doc.JsonResponse(),
)
out := web.NewHtmlEncoder(os.Stdout)
out.Encode(body)
}
Output: <body> <pre class="request">HTTP/1.1 GET / </pre><pre class="response">HTTP/1.1 200 OK { "animal": "Goat", "age": 10, "friendly": "hell no, not this one" }</pre></body>
func (*Doc) JsonResponse ¶
func (d *Doc) JsonResponse() *Element
Click to show internal directories.
Click to hide internal directories.