mirror of
https://github.com/ipfs/kubo.git
synced 2025-07-01 02:30:39 +08:00
Merge pull request #2516 from Stebalien/protobuf-content-type
Correctly set the content type for `object get --encoding=protobuf`
This commit is contained in:
@ -65,6 +65,7 @@ const (
|
||||
)
|
||||
|
||||
var mimeTypes = map[string]string{
|
||||
cmds.Protobuf: "application/protobuf",
|
||||
cmds.JSON: "application/json",
|
||||
cmds.XML: "application/xml",
|
||||
cmds.Text: "text/plain",
|
||||
|
@ -38,6 +38,7 @@ type EncodingType string
|
||||
const (
|
||||
JSON = "json"
|
||||
XML = "xml"
|
||||
Protobuf = "protobuf"
|
||||
Text = "text"
|
||||
// TODO: support more encoding types
|
||||
)
|
||||
|
@ -215,7 +215,7 @@ This command outputs data in the following encodings:
|
||||
},
|
||||
Type: Node{},
|
||||
Marshalers: cmds.MarshalerMap{
|
||||
cmds.EncodingType("protobuf"): func(res cmds.Response) (io.Reader, error) {
|
||||
cmds.Protobuf: func(res cmds.Response) (io.Reader, error) {
|
||||
node := res.Output().(*Node)
|
||||
// deserialize the Data field as text as this was the standard behaviour
|
||||
object, err := deserializeNode(node, "text")
|
||||
|
@ -289,12 +289,32 @@ test_object_cmd() {
|
||||
'
|
||||
}
|
||||
|
||||
test_object_content_type() {
|
||||
|
||||
test_expect_success "'ipfs object get --encoding=protobuf' returns the correct content type" '
|
||||
curl -sI "http://$API_ADDR/api/v0/object/get?arg=$HASH&encoding=protobuf" | grep -q "^Content-Type: application/protobuf"
|
||||
'
|
||||
|
||||
test_expect_success "'ipfs object get --encoding=json' returns the correct content type" '
|
||||
curl -sI "http://$API_ADDR/api/v0/object/get?arg=$HASH&encoding=json" | grep -q "^Content-Type: application/json"
|
||||
'
|
||||
|
||||
test_expect_success "'ipfs object get --encoding=text' returns the correct content type" '
|
||||
curl -sI "http://$API_ADDR/api/v0/object/get?arg=$HASH&encoding=text" | grep -q "^Content-Type: text/plain"
|
||||
'
|
||||
|
||||
test_expect_success "'ipfs object get --encoding=xml' returns the correct content type" '
|
||||
curl -sI "http://$API_ADDR/api/v0/object/get?arg=$HASH&encoding=xml" | grep -q "^Content-Type: application/xml"
|
||||
'
|
||||
}
|
||||
|
||||
# should work offline
|
||||
test_object_cmd
|
||||
|
||||
# should work online
|
||||
test_launch_ipfs_daemon
|
||||
test_object_cmd
|
||||
test_object_content_type
|
||||
test_kill_ipfs_daemon
|
||||
|
||||
test_done
|
||||
|
Reference in New Issue
Block a user