HomePhabricator

Support "application/json" in Blubberoid

Authored by dduvall on Oct 19 2018, 8:36 PM.

Description

Support "application/json" in Blubberoid

JSON seems a better option for a web service in general—other toolchains
in the Docker/Kubernetes space typically prefer YAML for human-edited
configs but convert to JSON on the wire. The "application/json" media
type is well established—unlike "application/yaml" which has no official
assignment by IANA—and is better supported by the OpenAPI (formerly
Swagger) specification.

Added content-type media type validation in the Blubberoid HTTP server
handler, and added a check for json.Valid(body) upon receiving a
"application/json" media type. Since any given valid JSON is also valid
YAML, Blubberoid simply does a shallow validation of the JSON body
before punting to config.ReadConfig for YAML unmarshalling and
thorough config validation.

Bug: T205920
Change-Id: I970acbde497ed446eb8eed568b1328f8c6f5aa55

Details

Committed
thciprianiDec 12 2018, 7:15 PM
Parents
rGBLBR56e830f6417f: Use JSON as canonical config format
Branches
Unknown
Tags
Unknown
References
refs/changes/74/468674/6
ChangeId
I970acbde497ed446eb8eed568b1328f8c6f5aa55