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")
+}