Merge pull request #267 from econnell/master

agent: added URL query parameter of "pretty=true" to output formatted json
This commit is contained in:
Armon Dadgar 2014-08-01 13:30:03 -07:00
commit cf3fcbc27d
2 changed files with 18 additions and 5 deletions

View File

@ -1,7 +1,6 @@
package agent
import (
"bytes"
"encoding/json"
"github.com/hashicorp/consul/consul/structs"
"github.com/mitchellh/mapstructure"
@ -138,15 +137,23 @@ func (s *HTTPServer) wrap(handler func(resp http.ResponseWriter, req *http.Reque
return
}
prettyPrint := false
if req.URL.Query().Get("pretty") != "" {
prettyPrint = true
}
// Write out the JSON object
if obj != nil {
var buf bytes.Buffer
enc := json.NewEncoder(&buf)
if err = enc.Encode(obj); err != nil {
var buf []byte
if prettyPrint {
buf, err = json.MarshalIndent(obj, "", " ")
} else {
buf, err = json.Marshal(obj)
}
if err != nil {
goto HAS_ERR
}
resp.Header().Set("Content-Type", "application/json")
resp.Write(buf.Bytes())
resp.Write(buf)
}
}
return f

View File

@ -79,6 +79,12 @@ which is the last time a server was contacted by the leader node in
milliseconds. The "X-Consul-KnownLeader" also indicates if there is a known
leader. These can be used to gauge if a stale read should be used.
## Formatted JSON Output
By default, the output of all HTTP API requests return minimized JSON with all
whitespace removed. By adding "?pretty=true" to the HTTP request URL,
formatted JSON will be returned.
## KV
The KV endpoint is used to expose a simple key/value store. This can be used