Building RESTful Web services with Go by Naren Yellavula

Building RESTful Web services with Go by Naren Yellavula

Author:Naren Yellavula
Language: eng
Format: epub, mobi, pdf
Tags: COM051310 - COMPUTERS / Programming Languages / C#, COM051470 - COMPUTERS / Programming Languages / ASP .NET, COM060180 - COMPUTERS / Web / Web Services and APIs
Publisher: Packt Publishing
Published: 2017-12-27T11:20:24+00:00


Marshaled proto data: [10 7 82 111 103 101 114 32 70 16 210 9 26 14 114 102 64 101 120 97 109 112 108 101 46 99 111 109 34 12 10 8 53 53 53 45 52 51 50 49 16 1]

Unmarshaled struct: name:"Roger F" id:1234 email:"[email protected]" phones:<number:"555-4321" type:HOME >

The second output of marshaled data is not intuitive because the proto library serializes data into binary bytes. Another good thing about protocol buffers in Go is that the structs generated by compiling the proto files can be used to generate JSON on the fly. Let us modify the preceding example to this. Call it main_json.go:

package main import ( "fmt" "encoding/json" pb "github.com/narenaryan/protofiles" ) func main() { p := &pb.Person{ Id: 1234, Name: "Roger F", Email: "[email protected]", Phones: []*pb.Person_PhoneNumber{ {Number: "555-4321", Type: pb.Person_HOME}, }, } body, _ := json.Marshal(p) fmt.Println(string(body)) }

If we run this, it prints a JSON string that can be sent to any client that can understand JSON:

go run main_json.go



Download



Copyright Disclaimer:
This site does not store any files on its server. We only index and link to content provided by other sites. Please contact the content providers to delete copyright contents if any and email us, we'll remove relevant links or contents immediately.