|
|
@ -6,7 +6,6 @@ import (
|
|
6
|
6
|
"encoding/json"
|
|
7
|
7
|
"flag"
|
|
8
|
8
|
"fmt"
|
|
9
|
|
"html/template"
|
|
10
|
9
|
"io"
|
|
11
|
10
|
"io/ioutil"
|
|
12
|
11
|
"log"
|
|
|
@ -115,35 +114,10 @@ func main() {
|
|
115
|
114
|
}
|
|
116
|
115
|
})
|
|
117
|
116
|
|
|
118
|
|
http.HandleFunc("/_stub", func(w http.ResponseWriter, req *http.Request) {
|
|
119
|
|
switch req.Method {
|
|
120
|
|
case "GET":
|
|
121
|
|
err := stubTmpl.Execute(w, nil)
|
|
122
|
|
if err != nil {
|
|
123
|
|
log.Printf("Error: Rendering stub template: %s", err)
|
|
124
|
|
return
|
|
125
|
|
}
|
|
126
|
|
case "POST":
|
|
127
|
|
err := req.ParseForm()
|
|
128
|
|
if err != nil {
|
|
129
|
|
log.Printf("Error: Parsing form: %s", err)
|
|
130
|
|
return
|
|
131
|
|
}
|
|
132
|
|
responses = append(responses, readResponse(req.Form))
|
|
133
|
|
default:
|
|
134
|
|
http.Error(w, "Method not allowed", http.StatusMethodNotAllowed)
|
|
135
|
|
}
|
|
136
|
|
})
|
|
137
|
|
|
|
138
|
117
|
http.HandleFunc("/_stubs", func(w http.ResponseWriter, req *http.Request) {
|
|
139
|
118
|
responses = loadResponses(responsesPath, false, responses)
|
|
140
|
119
|
|
|
141
|
|
var err error
|
|
142
|
|
if strings.Contains(req.Header.Get("Accept"), "application/yaml") {
|
|
143
|
|
err = renderYAML(w, responses)
|
|
144
|
|
} else {
|
|
145
|
|
err = renderHTML(w, responses)
|
|
146
|
|
}
|
|
|
120
|
err := renderYAML(w, responses)
|
|
147
|
121
|
if err != nil {
|
|
148
|
122
|
log.Printf("Error: Rendering stubs: %s", err)
|
|
149
|
123
|
}
|
|
|
@ -409,24 +383,3 @@ func loadResponsesRaw(path string) ([]Response, error) {
|
|
409
|
383
|
|
|
410
|
384
|
return responses, nil
|
|
411
|
385
|
}
|
|
412
|
|
|
|
413
|
|
var stubTmpl = template.Must(template.New("").Parse(`<!doctype html>
|
|
414
|
|
<html>
|
|
415
|
|
<head>
|
|
416
|
|
</head>
|
|
417
|
|
|
|
418
|
|
<body>
|
|
419
|
|
<form method="POST" action="/_stub">
|
|
420
|
|
<input type="text" name="method" placeholder="GET" />
|
|
421
|
|
<input type="text" name="path" placeholder="/request/path?query" />
|
|
422
|
|
<ul>
|
|
423
|
|
<li>
|
|
424
|
|
<input type="text" name="header" placeholder="Content-Type" />
|
|
425
|
|
<input type="text" name="value" placeholder="application/json" />
|
|
426
|
|
</li>
|
|
427
|
|
</ul>
|
|
428
|
|
<textarea name="body" placeholder="{}"></textarea>
|
|
429
|
|
<input type="submit" />
|
|
430
|
|
</form>
|
|
431
|
|
</body>
|
|
432
|
|
</html>`))
|