github.com/aavshr/aws-sdk-go@v1.41.3/private/protocol/restjson/restjson.go (about) 1 // Package restjson provides RESTful JSON serialization of AWS 2 // requests and responses. 3 package restjson 4 5 //go:generate go run -tags codegen ../../../private/model/cli/gen-protocol-tests ../../../models/protocol_tests/input/rest-json.json build_test.go 6 //go:generate go run -tags codegen ../../../private/model/cli/gen-protocol-tests ../../../models/protocol_tests/output/rest-json.json unmarshal_test.go 7 8 import ( 9 "github.com/aavshr/aws-sdk-go/aws/request" 10 "github.com/aavshr/aws-sdk-go/private/protocol/jsonrpc" 11 "github.com/aavshr/aws-sdk-go/private/protocol/rest" 12 ) 13 14 // BuildHandler is a named request handler for building restjson protocol 15 // requests 16 var BuildHandler = request.NamedHandler{ 17 Name: "awssdk.restjson.Build", 18 Fn: Build, 19 } 20 21 // UnmarshalHandler is a named request handler for unmarshaling restjson 22 // protocol requests 23 var UnmarshalHandler = request.NamedHandler{ 24 Name: "awssdk.restjson.Unmarshal", 25 Fn: Unmarshal, 26 } 27 28 // UnmarshalMetaHandler is a named request handler for unmarshaling restjson 29 // protocol request metadata 30 var UnmarshalMetaHandler = request.NamedHandler{ 31 Name: "awssdk.restjson.UnmarshalMeta", 32 Fn: UnmarshalMeta, 33 } 34 35 // Build builds a request for the REST JSON protocol. 36 func Build(r *request.Request) { 37 rest.Build(r) 38 39 if t := rest.PayloadType(r.Params); t == "structure" || t == "" { 40 if v := r.HTTPRequest.Header.Get("Content-Type"); len(v) == 0 { 41 r.HTTPRequest.Header.Set("Content-Type", "application/json") 42 } 43 jsonrpc.Build(r) 44 } 45 } 46 47 // Unmarshal unmarshals a response body for the REST JSON protocol. 48 func Unmarshal(r *request.Request) { 49 if t := rest.PayloadType(r.Data); t == "structure" || t == "" { 50 jsonrpc.Unmarshal(r) 51 } else { 52 rest.Unmarshal(r) 53 } 54 } 55 56 // UnmarshalMeta unmarshals response headers for the REST JSON protocol. 57 func UnmarshalMeta(r *request.Request) { 58 rest.UnmarshalMeta(r) 59 }