Add rest router
diff --git a/core/kg/api/rest/router.go b/core/kg/api/rest/router.go
new file mode 100644
index 0000000..8e695f2
--- /dev/null
+++ b/core/kg/api/rest/router.go
@@ -0,0 +1,39 @@
+package rest
+
+import (
+ "net/http"
+
+ "github.com/gorilla/mux"
+)
+
+const APIURLSuffix = "/api/v1"
+
+type Routers struct {
+ Root *mux.Router // ''
+ APIRoot *mux.Router // 'api/v1'
+ Users *mux.Router // 'api/v1/users'
+ User *mux.Router // 'api/v1/users/{user_id:[A-Za-z0-9]+}'
+}
+
+func NewRouter(root *mux.Router) *Routers {
+ apiRoot := root.PathPrefix(APIURLSuffix).Subrouter()
+ users := apiRoot.PathPrefix("/users").Subrouter()
+ user := apiRoot.PathPrefix("/users/{user_id:[A-Za-z0-9]+}").Subrouter()
+
+ routers := &Routers{
+ Root: root,
+ APIRoot: apiRoot,
+ Users: users,
+ User: user,
+ }
+ root.Handle("/api/v1/{anything:.*}", http.HandlerFunc(http.NotFound))
+ routers.initUsers()
+
+ return routers
+}
+
+func (r *Routers) initUsers() {
+ r.Users.Handle("", http.HandlerFunc(createUser)).Methods("POST")
+ r.Users.Handle("", http.HandlerFunc(getUsers)).Methods("GET")
+ r.User.Handle("", http.HandlerFunc(getUser)).Methods("GET")
+}
diff --git a/core/kg/api/rest/user_service.go b/core/kg/api/rest/user_service.go
new file mode 100644
index 0000000..91c7cb6
--- /dev/null
+++ b/core/kg/api/rest/user_service.go
@@ -0,0 +1,12 @@
+package rest
+
+import "net/http"
+
+func createUser(w http.ResponseWriter, r *http.Request) {
+}
+
+func getUsers(w http.ResponseWriter, r *http.Request) {
+}
+
+func getUser(w http.ResponseWriter, r *http.Request) {
+}