Change content-type for json stream to application/x-json-stream.

Docker-DCO-1.1-Signed-off-by: Jessica Frazelle <jess@docker.com> (github: jfrazelle)
This commit is contained in:
Jessica Frazelle 2014-09-17 17:53:04 -07:00
Родитель ac75835931
Коммит 10ab2089ce
5 изменённых файлов: 17 добавлений и 6 удалений

Просмотреть файл

@ -167,7 +167,7 @@ func (cli *DockerCli) streamHelper(method, path string, setRawTerminal bool, in
return fmt.Errorf("Error: %s", bytes.TrimSpace(body))
}
if api.MatchesContentType(resp.Header.Get("Content-Type"), "application/json") {
if api.MatchesContentType(resp.Header.Get("Content-Type"), "application/json") || api.MatchesContentType(resp.Header.Get("Content-Type"), "application/x-json-stream") {
return utils.DisplayJSONMessagesStream(resp.Body, stdout, cli.terminalFd, cli.isTerminal)
}
if stdout != nil || stderr != nil {

Просмотреть файл

@ -102,6 +102,10 @@ func writeJSON(w http.ResponseWriter, code int, v engine.Env) error {
func streamJSON(job *engine.Job, w http.ResponseWriter, flush bool) {
w.Header().Set("Content-Type", "application/json")
if job.GetenvBool("lineDelim") {
w.Header().Set("Content-Type", "application/x-json-stream")
}
if flush {
job.Stdout.Add(utils.NewWriteFlusher(w))
} else {
@ -976,6 +980,7 @@ func postBuild(eng *engine.Engine, version version.Version, w http.ResponseWrite
job.Setenv("q", r.FormValue("q"))
job.Setenv("nocache", r.FormValue("nocache"))
job.Setenv("forcerm", r.FormValue("forcerm"))
job.SetenvBool("lineDelim", version.GreaterThanOrEqualTo("1.15"))
job.SetenvJson("authConfig", authConfig)
job.SetenvJson("configFile", configFile)

Просмотреть файл

@ -275,7 +275,7 @@ func TestGetEvents(t *testing.T) {
if !called {
t.Fatal("handler was not called")
}
assertContentType(r, "application/json", t)
assertContentType(r, "application/x-json-stream", t)
var stdout_json struct {
Since int
Until int

Просмотреть файл

@ -37,6 +37,12 @@ You can still call an old version of the API using
### What's new
`POST /build`
`GET /events`
**New!**
Now has header: `Content-Type: application/x-json-stream`.
## v1.14
### Full Documentation
@ -77,7 +83,7 @@ the `tag` parameter at the same time will return an error.
The `HostConfig.Links` field is now filled correctly
**New!**
`Sockets` parameter added to the `/info` endpoint listing all the sockets the
`Sockets` parameter added to the `/info` endpoint listing all the sockets the
daemon is configured to listen on.
`POST /containers/(name)/start`
@ -405,7 +411,7 @@ Builder (/build):
intermediary buffers
- Simpler, less memory usage, less disk usage and faster
> **Warning**:
> **Warning**:
> The /build improvements are not reverse-compatible. Pre 1.3 clients will
> break on /build.

Просмотреть файл

@ -1093,7 +1093,7 @@ Build an image from Dockerfile via stdin
**Example response**:
HTTP/1.1 200 OK
Content-Type: application/json
Content-Type: application/x-json-stream
{"stream":"Step 1..."}
{"stream":"..."}
@ -1328,7 +1328,7 @@ via polling (using since)
**Example response**:
HTTP/1.1 200 OK
Content-Type: application/json
Content-Type: application/x-json-stream
{"status":"create","id":"dfdf82bd3881","from":"base:latest","time":1374067924}
{"status":"start","id":"dfdf82bd3881","from":"base:latest","time":1374067924}