[XAPID-1002] add X-Apigee-Consumer-Type header, add test
diff --git a/api_test.go b/api_test.go
index 86b3f76..4f6e265 100644
--- a/api_test.go
+++ b/api_test.go
@@ -772,6 +772,51 @@
 					Expect(strings.Contains(strings.ToLower(string(body)), strings.ToLower(expectedBody[i]))).To(BeTrue())
 				}
 			})
+
+			It("/register should reject invalid json, and marshal valid fields", func() {
+				// setup test data
+				dummyClient.code = http.StatusOK
+
+				testData := []string{
+					"invalid-json",
+					`{"reportedTime":"2017-08-09T13:30:03.987-07:00"}`,
+					`{"invalid-field1":"8eebdb60-be68-4380-a902-8cd0a2a0744c",
+					"invalid-field2":"2017-08-09T13:30:03.987-07:00"}`,
+				}
+
+				expectedCode := []int{
+					http.StatusBadRequest,
+					http.StatusBadRequest,
+					http.StatusBadRequest,
+				}
+
+				expectedBody := []string{
+					"json",
+					"",
+					"",
+				}
+
+				// setup http client
+				uri, err := url.Parse(apiTestUrl)
+				Expect(err).Should(Succeed())
+				for i, data := range testData {
+					uuid := "8eebdb60-be68-4380-a902-8cd0a2a0744c"
+					uri.Path = strings.Replace(testApiMan.registerEndpoint, "{uuid}", uuid, 1)
+					Expect(err).Should(Succeed())
+					log.Debug(uri.String())
+					req, err := http.NewRequest("PUT", uri.String(), strings.NewReader(data))
+					Expect(err).Should(Succeed())
+					// http put
+					res, err := testClient.Do(req)
+					Expect(err).Should(Succeed())
+					// parse response
+					defer res.Body.Close()
+					Expect(res.StatusCode).Should(Equal(expectedCode[i]))
+					body, err := ioutil.ReadAll(res.Body)
+					Expect(err).Should(Succeed())
+					Expect(strings.Contains(strings.ToLower(string(body)), strings.ToLower(expectedBody[i]))).To(BeTrue())
+				}
+			})
 		})
 	})
 
diff --git a/clients.go b/clients.go
index 7680029..6441446 100644
--- a/clients.go
+++ b/clients.go
@@ -45,6 +45,7 @@
 
 	req, err := http.NewRequest("PUT", uri.String(), bytes.NewReader(bodyBytes))
 	req.Header.Add("Authorization", getBearerToken())
+	req.Header.Set("X-Apigee-Consumer-Type", "apid")
 
 	r, err := t.httpclient.Do(req)
 	if err != nil {
@@ -79,6 +80,7 @@
 
 	req, err := http.NewRequest("PUT", uri.String(), bytes.NewReader(bodyBytes))
 	req.Header.Add("Authorization", getBearerToken())
+	req.Header.Set("X-Apigee-Consumer-Type", "apid")
 
 	r, err := t.httpclient.Do(req)
 	if err != nil {
@@ -98,6 +100,7 @@
 	req, err := http.NewRequest("PUT", uri.String(), nil)
 	req.Header.Add("Authorization", getBearerToken())
 	req.Header.Add("reportedTime", reported)
+	req.Header.Set("X-Apigee-Consumer-Type", "apid")
 
 	r, err := t.httpclient.Do(req)
 	if err != nil {
diff --git a/init.go b/init.go
index 3e8121a..deaf76f 100644
--- a/init.go
+++ b/init.go
@@ -128,7 +128,6 @@
 	}
 	apidClusterId = config.GetString(configApidClusterID)
 
-
 	client := &trackerClient{
 		trackerBaseUrl: configApiServerBaseURI,
 		clusterId:      apidClusterId,
@@ -203,4 +202,3 @@
 
 	return pluginData, nil
 }
-