Handling endpoints
The final piece of the puzzle is the handlePolls function that will use the helpers to understand the incoming request and access the database, and generate a meaningful response that will be sent back to the client. We also need to model the poll data that we were working with in the previous chapter.
Create a new file called polls.go, and add the following code:
package main
import "gopkg.in/mgo.v2/bson"
type poll struct {
ID bson.ObjectId `bson:"_id" json:"id"`
Title string `json":"title""`
Options []string `json:"options"`
Results map[string]int `json:"results,omitempty"`
}Here we define a structure called poll that has three fields that in turn describe the polls being created and maintained by the code we wrote in the previous chapter. Each field also has a tag (two in the ID case), which allows us to provide some extra metadata.
Using tags to add metadata to structs
Tags are strings that follow a field definition within a struct type on...