You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@griffin.apache.org by gu...@apache.org on 2017/10/13 06:09:08 UTC

incubator-griffin git commit: update restful api and test api

Repository: incubator-griffin
Updated Branches:
  refs/heads/master bc815997a -> 982da9945


update restful api and test api

Author: Lionel Liu <bh...@163.com>
Author: ahutsunshine <ah...@gmail.com>
Author: Yao <de...@ebay.com>

Closes #139 from ahutsunshine/master.


Project: http://git-wip-us.apache.org/repos/asf/incubator-griffin/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-griffin/commit/982da994
Tree: http://git-wip-us.apache.org/repos/asf/incubator-griffin/tree/982da994
Diff: http://git-wip-us.apache.org/repos/asf/incubator-griffin/diff/982da994

Branch: refs/heads/master
Commit: 982da9945891ad5ab205113b5e8c07c0a64ce64e
Parents: bc81599
Author: Lionel Liu <bh...@163.com>
Authored: Fri Oct 13 14:08:57 2017 +0800
Committer: Lionel Liu <bh...@163.com>
Committed: Fri Oct 13 14:08:57 2017 +0800

----------------------------------------------------------------------
 .../apache/griffin/core/job/JobController.java  |  2 +-
 .../griffin/core/measure/MeasureController.java |  1 +
 .../metastore/hive/HiveMetaStoreController.java |  2 +-
 .../metastore/kafka/KafkaSchemaController.java  |  2 +-
 .../griffin/core/metric/MetricController.java   |  2 +-
 .../griffin/core/service/GriffinController.java |  1 +
 .../griffin/core/job/JobControllerTest.java     | 16 +++++++------
 .../core/measure/MeasureControllerTest.java     | 25 ++++++++++----------
 .../hive/HiveMetaStoreControllerTest.java       | 15 ++++++------
 .../core/metric/MetricControllerTest.java       |  3 ++-
 .../core/service/GriffinControllerTest.java     |  7 +++---
 .../org/apache/griffin/core/util/URLHelper.java | 24 +++++++++++++++++++
 12 files changed, 66 insertions(+), 34 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-griffin/blob/982da994/service/src/main/java/org/apache/griffin/core/job/JobController.java
----------------------------------------------------------------------
diff --git a/service/src/main/java/org/apache/griffin/core/job/JobController.java b/service/src/main/java/org/apache/griffin/core/job/JobController.java
index 3254530..ecc72e2 100644
--- a/service/src/main/java/org/apache/griffin/core/job/JobController.java
+++ b/service/src/main/java/org/apache/griffin/core/job/JobController.java
@@ -33,7 +33,7 @@ import java.util.List;
 import java.util.Map;
 
 @RestController
-@RequestMapping("/jobs")
+@RequestMapping("/api/v1/jobs")
 public class JobController {
     private static final Logger LOGGER = LoggerFactory.getLogger(JobController.class);
 

http://git-wip-us.apache.org/repos/asf/incubator-griffin/blob/982da994/service/src/main/java/org/apache/griffin/core/measure/MeasureController.java
----------------------------------------------------------------------
diff --git a/service/src/main/java/org/apache/griffin/core/measure/MeasureController.java b/service/src/main/java/org/apache/griffin/core/measure/MeasureController.java
index f93ce6a..2017ecc 100644
--- a/service/src/main/java/org/apache/griffin/core/measure/MeasureController.java
+++ b/service/src/main/java/org/apache/griffin/core/measure/MeasureController.java
@@ -30,6 +30,7 @@ import java.util.Map;
 @RestController
 //@Api("MeasureController")
 
+@RequestMapping(value = "/api/v1")
 public class MeasureController {
     @Autowired
     private MeasureService measureService;

http://git-wip-us.apache.org/repos/asf/incubator-griffin/blob/982da994/service/src/main/java/org/apache/griffin/core/metastore/hive/HiveMetaStoreController.java
----------------------------------------------------------------------
diff --git a/service/src/main/java/org/apache/griffin/core/metastore/hive/HiveMetaStoreController.java b/service/src/main/java/org/apache/griffin/core/metastore/hive/HiveMetaStoreController.java
index 76a32c3..fc63f39 100644
--- a/service/src/main/java/org/apache/griffin/core/metastore/hive/HiveMetaStoreController.java
+++ b/service/src/main/java/org/apache/griffin/core/metastore/hive/HiveMetaStoreController.java
@@ -27,7 +27,7 @@ import java.util.List;
 import java.util.Map;
 
 @RestController
-@RequestMapping("/metadata/hive")
+@RequestMapping("/api/v1/metadata/hive")
 public class HiveMetaStoreController {
 
     @Autowired

http://git-wip-us.apache.org/repos/asf/incubator-griffin/blob/982da994/service/src/main/java/org/apache/griffin/core/metastore/kafka/KafkaSchemaController.java
----------------------------------------------------------------------
diff --git a/service/src/main/java/org/apache/griffin/core/metastore/kafka/KafkaSchemaController.java b/service/src/main/java/org/apache/griffin/core/metastore/kafka/KafkaSchemaController.java
index a5bed89..acff59b 100644
--- a/service/src/main/java/org/apache/griffin/core/metastore/kafka/KafkaSchemaController.java
+++ b/service/src/main/java/org/apache/griffin/core/metastore/kafka/KafkaSchemaController.java
@@ -26,7 +26,7 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 
 @RestController
-@RequestMapping("/metadata/kafka")
+@RequestMapping("/api/v1/metadata/kafka")
 public class KafkaSchemaController {
 
     @Autowired

http://git-wip-us.apache.org/repos/asf/incubator-griffin/blob/982da994/service/src/main/java/org/apache/griffin/core/metric/MetricController.java
----------------------------------------------------------------------
diff --git a/service/src/main/java/org/apache/griffin/core/metric/MetricController.java b/service/src/main/java/org/apache/griffin/core/metric/MetricController.java
index e0e9c9a..95b13fe 100644
--- a/service/src/main/java/org/apache/griffin/core/metric/MetricController.java
+++ b/service/src/main/java/org/apache/griffin/core/metric/MetricController.java
@@ -32,7 +32,7 @@ import org.springframework.web.bind.annotation.RestController;
  */
 
 @RestController
-@RequestMapping("/metrics")
+@RequestMapping("/api/v1/metrics")
 public class MetricController {
     private static final Logger LOGGER = LoggerFactory.getLogger(MetricController.class);
     @Autowired

http://git-wip-us.apache.org/repos/asf/incubator-griffin/blob/982da994/service/src/main/java/org/apache/griffin/core/service/GriffinController.java
----------------------------------------------------------------------
diff --git a/service/src/main/java/org/apache/griffin/core/service/GriffinController.java b/service/src/main/java/org/apache/griffin/core/service/GriffinController.java
index b7aff53..8fb605c 100644
--- a/service/src/main/java/org/apache/griffin/core/service/GriffinController.java
+++ b/service/src/main/java/org/apache/griffin/core/service/GriffinController.java
@@ -35,6 +35,7 @@ import java.util.Map;
 
 
 @RestController
+@RequestMapping(value = "/api/v1")
 public class GriffinController {
     private static final Logger LOGGER = LoggerFactory.getLogger(GriffinController.class);
 

http://git-wip-us.apache.org/repos/asf/incubator-griffin/blob/982da994/service/src/test/java/org/apache/griffin/core/job/JobControllerTest.java
----------------------------------------------------------------------
diff --git a/service/src/test/java/org/apache/griffin/core/job/JobControllerTest.java b/service/src/test/java/org/apache/griffin/core/job/JobControllerTest.java
index a78bafc..0ce227e 100644
--- a/service/src/test/java/org/apache/griffin/core/job/JobControllerTest.java
+++ b/service/src/test/java/org/apache/griffin/core/job/JobControllerTest.java
@@ -24,6 +24,7 @@ import org.apache.griffin.core.job.entity.JobInstance;
 import org.apache.griffin.core.job.entity.JobRequestBody;
 import org.apache.griffin.core.job.entity.LivySessionStates;
 import org.apache.griffin.core.util.GriffinOperationMessage;
+import org.apache.griffin.core.util.URLHelper;
 import org.codehaus.jackson.map.ObjectMapper;
 import org.junit.Before;
 import org.junit.Test;
@@ -60,6 +61,7 @@ public class JobControllerTest {
     public void setup() {
     }
 
+
     @Test
     public void testGetJobs() throws Exception {
         Map<String, Serializable> map = new HashMap<>();
@@ -67,7 +69,7 @@ public class JobControllerTest {
         map.put("groupName", "BA");
         given(service.getAliveJobs()).willReturn(Arrays.asList(map));
 
-        mvc.perform(get("/jobs/").contentType(MediaType.APPLICATION_JSON))
+        mvc.perform(get(URLHelper.API_VERSION_PATH + "/jobs/").contentType(MediaType.APPLICATION_JSON))
                 .andExpect(status().isOk())
                 .andExpect(jsonPath("$.[0].jobName", is("job1")));
     }
@@ -81,7 +83,7 @@ public class JobControllerTest {
         String schedulerRequestBodyJson = new ObjectMapper().writeValueAsString(jobRequestBody);
         given(service.addJob(groupName, jobName, measureId, jobRequestBody)).willReturn(GriffinOperationMessage.CREATE_JOB_SUCCESS);
 
-        mvc.perform(post("/jobs").param("group", groupName).param("jobName", jobName)
+        mvc.perform(post(URLHelper.API_VERSION_PATH + "/jobs").param("group", groupName).param("jobName", jobName)
                 .param("measureId", String.valueOf(measureId))
                 .contentType(MediaType.APPLICATION_JSON)
                 .content(schedulerRequestBodyJson))
@@ -100,7 +102,7 @@ public class JobControllerTest {
         String schedulerRequestBodyJson = new ObjectMapper().writeValueAsString(jobRequestBody);
         given(service.addJob(groupName, jobName, measureId, jobRequestBody)).willReturn(GriffinOperationMessage.CREATE_JOB_FAIL);
 
-        mvc.perform(post("/jobs").param("group", groupName).param("jobName", jobName)
+        mvc.perform(post(URLHelper.API_VERSION_PATH + "/jobs").param("group", groupName).param("jobName", jobName)
                 .param("measureId", String.valueOf(measureId))
                 .contentType(MediaType.APPLICATION_JSON)
                 .content(schedulerRequestBodyJson))
@@ -116,7 +118,7 @@ public class JobControllerTest {
         String jobName = "job1";
         given(service.deleteJob(groupName, jobName)).willReturn(GriffinOperationMessage.DELETE_JOB_SUCCESS);
 
-        mvc.perform(delete("/jobs").param("group", groupName).param("jobName", jobName))
+        mvc.perform(delete(URLHelper.API_VERSION_PATH + "/jobs").param("group", groupName).param("jobName", jobName))
                 .andExpect(status().isOk())
                 .andExpect(jsonPath("$.code", is(206)))
                 .andExpect(jsonPath("$.description", is("Delete Job Succeed")));
@@ -128,7 +130,7 @@ public class JobControllerTest {
         String jobName = "job1";
         given(service.deleteJob(groupName, jobName)).willReturn(GriffinOperationMessage.DELETE_JOB_FAIL);
 
-        mvc.perform(delete("/jobs").param("group", groupName).param("jobName", jobName))
+        mvc.perform(delete(URLHelper.API_VERSION_PATH + "/jobs").param("group", groupName).param("jobName", jobName))
                 .andExpect(status().isOk())
                 .andExpect(jsonPath("$.code", is(406)))
                 .andExpect(jsonPath("$.description", is("Delete Job Failed")));
@@ -143,7 +145,7 @@ public class JobControllerTest {
         JobInstance jobInstance = new JobInstance(groupName, jobName, 1, LivySessionStates.State.running, "", "", System.currentTimeMillis());
         given(service.findInstancesOfJob(groupName, jobName, page, size)).willReturn(Arrays.asList(jobInstance));
 
-        mvc.perform(get("/jobs/instances").param("group", groupName).param("jobName", jobName)
+        mvc.perform(get(URLHelper.API_VERSION_PATH + "/jobs/instances").param("group", groupName).param("jobName", jobName)
                 .param("page", String.valueOf(page)).param("size", String.valueOf(size)))
                 .andExpect(status().isOk())
                 .andExpect(jsonPath("$.[0].groupName", is("BA")));
@@ -154,7 +156,7 @@ public class JobControllerTest {
         JobHealth jobHealth = new JobHealth(1, 3);
         given(service.getHealthInfo()).willReturn(jobHealth);
 
-        mvc.perform(get("/jobs/health"))
+        mvc.perform(get(URLHelper.API_VERSION_PATH + "/jobs/health"))
                 .andExpect(status().isOk())
                 .andExpect(jsonPath("$.healthyJobCount", is(1)));
     }

http://git-wip-us.apache.org/repos/asf/incubator-griffin/blob/982da994/service/src/test/java/org/apache/griffin/core/measure/MeasureControllerTest.java
----------------------------------------------------------------------
diff --git a/service/src/test/java/org/apache/griffin/core/measure/MeasureControllerTest.java b/service/src/test/java/org/apache/griffin/core/measure/MeasureControllerTest.java
index 8bc24bd..e1230d4 100644
--- a/service/src/test/java/org/apache/griffin/core/measure/MeasureControllerTest.java
+++ b/service/src/test/java/org/apache/griffin/core/measure/MeasureControllerTest.java
@@ -21,6 +21,7 @@ package org.apache.griffin.core.measure;
 
 import org.apache.griffin.core.measure.entity.Measure;
 import org.apache.griffin.core.util.GriffinOperationMessage;
+import org.apache.griffin.core.util.URLHelper;
 import org.codehaus.jackson.map.ObjectMapper;
 import org.junit.Before;
 import org.junit.Test;
@@ -61,7 +62,7 @@ public class MeasureControllerTest {
         Measure measure = createATestMeasure("view_item_hourly", "ebay");
         given(service.getAllAliveMeasures()).willReturn(Arrays.asList(measure));
 
-        mvc.perform(get("/measures").contentType(MediaType.APPLICATION_JSON))
+        mvc.perform(get(URLHelper.API_VERSION_PATH + "/measures").contentType(MediaType.APPLICATION_JSON))
                 .andExpect(status().isOk())
                 .andExpect(jsonPath("$.[0].name", is("view_item_hourly")));
     }
@@ -72,7 +73,7 @@ public class MeasureControllerTest {
         Measure measure = createATestMeasure("view_item_hourly", "ebay");
         given(service.getMeasureById(1L)).willReturn(measure);
 
-        mvc.perform(get("/measure/1").contentType(MediaType.APPLICATION_JSON))
+        mvc.perform(get(URLHelper.API_VERSION_PATH + "/measure/1").contentType(MediaType.APPLICATION_JSON))
                 .andExpect(status().isOk())
                 .andExpect(jsonPath("$.name", is("view_item_hourly")))
         ;
@@ -82,7 +83,7 @@ public class MeasureControllerTest {
     public void testDeleteMeasuresByIdForSuccess() throws Exception {
         given(service.deleteMeasureById(1L)).willReturn(GriffinOperationMessage.DELETE_MEASURE_BY_ID_SUCCESS);
 
-        mvc.perform(delete("/measure/1").contentType(MediaType.APPLICATION_JSON))
+        mvc.perform(delete(URLHelper.API_VERSION_PATH + "/measure/1").contentType(MediaType.APPLICATION_JSON))
                 .andExpect(status().isOk())
                 .andExpect(jsonPath("$.description", is("Delete Measures By Name Succeed")))
                 .andExpect(jsonPath("$.code", is(202)));
@@ -92,7 +93,7 @@ public class MeasureControllerTest {
     public void testDeleteMeasuresByIdForNotFound() throws Exception {
         given(service.deleteMeasureById(1L)).willReturn(GriffinOperationMessage.RESOURCE_NOT_FOUND);
 
-        mvc.perform(delete("/measure/1").contentType(MediaType.APPLICATION_JSON))
+        mvc.perform(delete(URLHelper.API_VERSION_PATH + "/measure/1").contentType(MediaType.APPLICATION_JSON))
                 .andExpect(status().isOk())
                 .andExpect(jsonPath("$.description", is("Resource Not Found")))
                 .andExpect(jsonPath("$.code", is(400)));
@@ -102,7 +103,7 @@ public class MeasureControllerTest {
     public void testDeleteMeasuresByIdForFail() throws Exception {
         given(service.deleteMeasureById(1L)).willReturn(GriffinOperationMessage.DELETE_MEASURE_BY_ID_FAIL);
 
-        mvc.perform(delete("/measure/1").contentType(MediaType.APPLICATION_JSON))
+        mvc.perform(delete(URLHelper.API_VERSION_PATH + "/measure/1").contentType(MediaType.APPLICATION_JSON))
                 .andExpect(status().isOk())
                 .andExpect(jsonPath("$.description", is("Delete Measures By Name Failed")))
                 .andExpect(jsonPath("$.code", is(402)));
@@ -114,7 +115,7 @@ public class MeasureControllerTest {
         String measureJson = new ObjectMapper().writeValueAsString(measure);
         given(service.updateMeasure(measure)).willReturn(GriffinOperationMessage.UPDATE_MEASURE_SUCCESS);
 
-        mvc.perform(put("/measure").contentType(MediaType.APPLICATION_JSON).content(measureJson))
+        mvc.perform(put(URLHelper.API_VERSION_PATH + "/measure").contentType(MediaType.APPLICATION_JSON).content(measureJson))
                 .andExpect(status().isOk())
                 .andExpect(jsonPath("$.description", is("Update Measure Succeed")))
                 .andExpect(jsonPath("$.code", is(204)));
@@ -126,7 +127,7 @@ public class MeasureControllerTest {
         String measureJson = new ObjectMapper().writeValueAsString(measure);
         given(service.updateMeasure(measure)).willReturn(GriffinOperationMessage.RESOURCE_NOT_FOUND);
 
-        mvc.perform(put("/measure").contentType(MediaType.APPLICATION_JSON).content(measureJson))
+        mvc.perform(put(URLHelper.API_VERSION_PATH + "/measure").contentType(MediaType.APPLICATION_JSON).content(measureJson))
                 .andExpect(status().isOk())
                 .andExpect(jsonPath("$.description", is("Resource Not Found")))
                 .andExpect(jsonPath("$.code", is(400)));
@@ -139,7 +140,7 @@ public class MeasureControllerTest {
         String measureJson = new ObjectMapper().writeValueAsString(measure);
         given(service.updateMeasure(measure)).willReturn(GriffinOperationMessage.UPDATE_MEASURE_FAIL);
 
-        mvc.perform(put("/measure").contentType(MediaType.APPLICATION_JSON).content(measureJson))
+        mvc.perform(put(URLHelper.API_VERSION_PATH + "/measure").contentType(MediaType.APPLICATION_JSON).content(measureJson))
                 .andExpect(status().isOk())
                 .andExpect(jsonPath("$.description", is("Update Measure Failed")))
                 .andExpect(jsonPath("$.code", is(404)));
@@ -155,7 +156,7 @@ public class MeasureControllerTest {
         measureList.add(map);
         given(service.getAllAliveMeasureNameIdByOwner(owner)).willReturn(measureList);
 
-        mvc.perform(get("/measures/owner/" + owner).contentType(MediaType.APPLICATION_JSON))
+        mvc.perform(get(URLHelper.API_VERSION_PATH + "/measures/owner/" + owner).contentType(MediaType.APPLICATION_JSON))
                 .andExpect(status().isOk())
                 .andExpect(jsonPath("$.[0].name", is("view_item_hourly")))
         ;
@@ -167,7 +168,7 @@ public class MeasureControllerTest {
         String measureJson = new ObjectMapper().writeValueAsString(measure);
         given(service.createMeasure(measure)).willReturn(GriffinOperationMessage.CREATE_MEASURE_SUCCESS);
 
-        mvc.perform(post("/measure").contentType(MediaType.APPLICATION_JSON).content(measureJson))
+        mvc.perform(post(URLHelper.API_VERSION_PATH + "/measure").contentType(MediaType.APPLICATION_JSON).content(measureJson))
                 .andExpect(status().isOk())
                 .andExpect(jsonPath("$.description", is("Create Measure Succeed")))
                 .andExpect(jsonPath("$.code", is(201)));
@@ -179,7 +180,7 @@ public class MeasureControllerTest {
         String measureJson = new ObjectMapper().writeValueAsString(measure);
         given(service.createMeasure(measure)).willReturn(GriffinOperationMessage.CREATE_MEASURE_FAIL_DUPLICATE);
 
-        mvc.perform(post("/measure").contentType(MediaType.APPLICATION_JSON).content(measureJson))
+        mvc.perform(post(URLHelper.API_VERSION_PATH + "/measure").contentType(MediaType.APPLICATION_JSON).content(measureJson))
                 .andExpect(status().isOk())
                 .andExpect(jsonPath("$.description", is("Create Measure Failed, duplicate records")))
                 .andExpect(jsonPath("$.code", is(410)));
@@ -191,7 +192,7 @@ public class MeasureControllerTest {
         String measureJson = new ObjectMapper().writeValueAsString(measure);
         given(service.createMeasure(measure)).willReturn(GriffinOperationMessage.CREATE_MEASURE_FAIL);
 
-        mvc.perform(post("/measure").contentType(MediaType.APPLICATION_JSON).content(measureJson))
+        mvc.perform(post(URLHelper.API_VERSION_PATH + "/measure").contentType(MediaType.APPLICATION_JSON).content(measureJson))
                 .andExpect(status().isOk())
                 .andExpect(jsonPath("$.description", is("Create Measure Failed")))
                 .andExpect(jsonPath("$.code", is(401)));

http://git-wip-us.apache.org/repos/asf/incubator-griffin/blob/982da994/service/src/test/java/org/apache/griffin/core/metastore/hive/HiveMetaStoreControllerTest.java
----------------------------------------------------------------------
diff --git a/service/src/test/java/org/apache/griffin/core/metastore/hive/HiveMetaStoreControllerTest.java b/service/src/test/java/org/apache/griffin/core/metastore/hive/HiveMetaStoreControllerTest.java
index d1bbdb6..b2fbc11 100644
--- a/service/src/test/java/org/apache/griffin/core/metastore/hive/HiveMetaStoreControllerTest.java
+++ b/service/src/test/java/org/apache/griffin/core/metastore/hive/HiveMetaStoreControllerTest.java
@@ -19,6 +19,7 @@ under the License.
 
 package org.apache.griffin.core.metastore.hive;
 
+import org.apache.griffin.core.util.URLHelper;
 import org.apache.hadoop.hive.metastore.api.Table;
 import org.junit.Before;
 import org.junit.Test;
@@ -57,7 +58,7 @@ public class HiveMetaStoreControllerTest {
         String dbName = "default";
         given(hiveMetaStoreService.getAllDatabases()).willReturn(Arrays.asList(dbName));
 
-        mockMvc.perform(get("/metadata/hive/db"))
+        mockMvc.perform(get(URLHelper.API_VERSION_PATH + "/metadata/hive/db"))
                 .andExpect(status().isOk())
                 .andExpect(jsonPath("$.[0]", is(dbName)));
     }
@@ -67,7 +68,7 @@ public class HiveMetaStoreControllerTest {
         String tableName = "table";
         given(hiveMetaStoreService.getAllTableNames("")).willReturn(Arrays.asList(tableName));
 
-        mockMvc.perform(get("/metadata/hive/table"))
+        mockMvc.perform(get(URLHelper.API_VERSION_PATH + "/metadata/hive/table"))
                 .andExpect(status().isOk())
                 .andExpect(jsonPath("$.[0]", is(tableName)));
     }
@@ -78,7 +79,7 @@ public class HiveMetaStoreControllerTest {
         String tableName = "table";
         given(hiveMetaStoreService.getAllTableNames(dbName)).willReturn(Arrays.asList(tableName));
 
-        mockMvc.perform(get("/metadata/hive/allTableNames").param("db", dbName))
+        mockMvc.perform(get(URLHelper.API_VERSION_PATH + "/metadata/hive/allTableNames").param("db", dbName))
                 .andExpect(status().isOk())
                 .andExpect(jsonPath("$.[0]", is(tableName)));
     }
@@ -88,7 +89,7 @@ public class HiveMetaStoreControllerTest {
         String dbName = "default";
         given(hiveMetaStoreService.getAllTable(dbName)).willReturn(Arrays.asList(new Table()));
 
-        mockMvc.perform(get("/metadata/hive/db/allTables").param("db", dbName))
+        mockMvc.perform(get(URLHelper.API_VERSION_PATH + "/metadata/hive/db/allTables").param("db", dbName))
                 .andExpect(status().isOk())
                 .andExpect(jsonPath("$.[0].tableName", is(nullValue())));
     }
@@ -99,7 +100,7 @@ public class HiveMetaStoreControllerTest {
         results.put("table", new ArrayList<>());
         given(hiveMetaStoreService.getAllTable()).willReturn(results);
 
-        mockMvc.perform(get("/metadata/hive/allTables"))
+        mockMvc.perform(get(URLHelper.API_VERSION_PATH + "/metadata/hive/allTables"))
                 .andExpect(status().isOk())
                 .andExpect(jsonPath("$.table", hasSize(0)));
     }
@@ -110,7 +111,7 @@ public class HiveMetaStoreControllerTest {
         String tableName = "table";
         given(hiveMetaStoreService.getTable(dbName, tableName)).willReturn(new Table(tableName, null, null, 0, 0, 0, null, null, null, null, null, null));
 
-        mockMvc.perform(get("/metadata/hive/default/{table}", tableName))
+        mockMvc.perform(get(URLHelper.API_VERSION_PATH + "/metadata/hive/default/{table}", tableName))
                 .andExpect(status().isOk())
                 .andExpect(jsonPath("$.tableName", is(tableName)));
     }
@@ -121,7 +122,7 @@ public class HiveMetaStoreControllerTest {
         String tableName = "table";
         given(hiveMetaStoreService.getTable(dbName, tableName)).willReturn(new Table(tableName, null, null, 0, 0, 0, null, null, null, null, null, null));
 
-        mockMvc.perform(get("/metadata/hive").param("db", dbName).param("table", tableName))
+        mockMvc.perform(get(URLHelper.API_VERSION_PATH + "/metadata/hive").param("db", dbName).param("table", tableName))
                 .andExpect(status().isOk())
                 .andExpect(jsonPath("$.tableName", is(tableName)));
     }

http://git-wip-us.apache.org/repos/asf/incubator-griffin/blob/982da994/service/src/test/java/org/apache/griffin/core/metric/MetricControllerTest.java
----------------------------------------------------------------------
diff --git a/service/src/test/java/org/apache/griffin/core/metric/MetricControllerTest.java b/service/src/test/java/org/apache/griffin/core/metric/MetricControllerTest.java
index 44d1a8d..eb4d981 100644
--- a/service/src/test/java/org/apache/griffin/core/metric/MetricControllerTest.java
+++ b/service/src/test/java/org/apache/griffin/core/metric/MetricControllerTest.java
@@ -19,6 +19,7 @@ under the License.
 
 package org.apache.griffin.core.metric;
 
+import org.apache.griffin.core.util.URLHelper;
 import org.junit.Before;
 import org.junit.Test;
 import org.junit.runner.RunWith;
@@ -56,7 +57,7 @@ public class MetricControllerTest {
         String org = "ebay";
         given(service.getOrgByMeasureName(measureName)).willReturn(org);
 
-        mvc.perform(get("/metrics/org").param("measureName", measureName))
+        mvc.perform(get(URLHelper.API_VERSION_PATH + "/metrics/org").param("measureName", measureName))
                 .andExpect(status().isOk())
                 .andExpect(jsonPath("$", is(org)));
     }

http://git-wip-us.apache.org/repos/asf/incubator-griffin/blob/982da994/service/src/test/java/org/apache/griffin/core/service/GriffinControllerTest.java
----------------------------------------------------------------------
diff --git a/service/src/test/java/org/apache/griffin/core/service/GriffinControllerTest.java b/service/src/test/java/org/apache/griffin/core/service/GriffinControllerTest.java
index bf3e6c0..14f5a52 100644
--- a/service/src/test/java/org/apache/griffin/core/service/GriffinControllerTest.java
+++ b/service/src/test/java/org/apache/griffin/core/service/GriffinControllerTest.java
@@ -20,6 +20,7 @@ under the License.
 package org.apache.griffin.core.service;
 
 import org.apache.griffin.core.measure.repo.MeasureRepo;
+import org.apache.griffin.core.util.URLHelper;
 import org.junit.Before;
 import org.junit.Test;
 import org.junit.runner.RunWith;
@@ -55,7 +56,7 @@ public class GriffinControllerTest {
 
     @Test
     public void testGreeting() throws Exception {
-        mockMvc.perform(get("/version"))
+        mockMvc.perform(get(URLHelper.API_VERSION_PATH + "/version"))
                 .andExpect(status().isOk())
                 .andExpect(content().string(is("0.1.0")));
     }
@@ -63,7 +64,7 @@ public class GriffinControllerTest {
     @Test
     public void testGetOrgs() throws Exception {
         when(measureRepo.findOrganizations()).thenReturn(Arrays.asList("ebay"));
-        mockMvc.perform(get("/org"))
+        mockMvc.perform(get(URLHelper.API_VERSION_PATH + "/org"))
                 .andExpect(status().isOk())
                 .andExpect(jsonPath("$.[0]", is("ebay")));
     }
@@ -72,7 +73,7 @@ public class GriffinControllerTest {
     public void testGetMetricNameListByOrg() throws Exception {
         String org = "hadoop";
         when(measureRepo.findNameByOrganization(org)).thenReturn(Arrays.asList(org));
-        mockMvc.perform(get("/org/{org}", org))
+        mockMvc.perform(get(URLHelper.API_VERSION_PATH + "/org/{org}", org))
                 .andExpect(status().isOk())
                 .andExpect(jsonPath("$.[0]", is(org)));
     }

http://git-wip-us.apache.org/repos/asf/incubator-griffin/blob/982da994/service/src/test/java/org/apache/griffin/core/util/URLHelper.java
----------------------------------------------------------------------
diff --git a/service/src/test/java/org/apache/griffin/core/util/URLHelper.java b/service/src/test/java/org/apache/griffin/core/util/URLHelper.java
new file mode 100644
index 0000000..4ad4ba9
--- /dev/null
+++ b/service/src/test/java/org/apache/griffin/core/util/URLHelper.java
@@ -0,0 +1,24 @@
+/*
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements.  See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership.  The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License.  You may obtain a copy of the License at
+
+  http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing,
+software distributed under the License is distributed on an
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, either express or implied.  See the License for the
+specific language governing permissions and limitations
+under the License.
+*/
+
+package org.apache.griffin.core.util;
+
+public class URLHelper {
+    public static final String API_VERSION_PATH = "/api/v1";
+}