Defining the schema
Disclaimer
Once again, this section is here for readers who skipped Chapter 7. The only difference is the code generation with protoc
, which happens in the last few paragraphs, and the omission of the go_package
option.
Starting a project involving Protobuf always starts by defining the schema. This is known as schema-driven development (SDD). We essentially define the contract that needs to be fulfilled.
We are going to take a bottom-up approach to design this schema. We are going to start by defining what a Person
contact looks like. As we saw in the description of the project, a person can have an email and multiple phone numbers. This looks like the following (proto/addressbook.proto
):
message Person { //... string email = 1; repeated PhoneNumber phones = 2; }
While the email is simply a string, the phone number will be represented by a nested message. This is because we want to be able to store the phone number...