@@ -64,9 +64,22 @@ func NameToPath(name string, depth int) string {
6464 return string (buf [index :])
6565}
6666
67- //AddInterface 自动注册接口
68- //只要struct实现了Get(),Post(),Delete(),Put()接口就可以自动注册
69- func AddInterface (obj interface {}, path string , isPrefix bool ) error {
67+ //Register 只要struct实现了Get(),Post(),Delete(),Put()接口就可以自动注册
68+ func Register (obj interface {}) error {
69+ return register (obj , "" , false )
70+ }
71+
72+ //RegisterPrefix 注册url前缀.
73+ func RegisterPrefix (obj interface {}, path string ) error {
74+ return register (obj , path , true )
75+ }
76+
77+ //RegisterPath 注册url完全匹配.
78+ func RegisterPath (obj interface {}, path string ) error {
79+ return register (obj , path , true )
80+ }
81+
82+ func register (obj interface {}, path string , isPrefix bool ) error {
7083 rt := reflect .TypeOf (obj )
7184 if rt .Kind () != reflect .Ptr {
7285 return fmt .Errorf ("need ptr" )
@@ -177,7 +190,7 @@ func (s *httpServer) ServeHTTP(w http.ResponseWriter, r *http.Request) {
177190 return
178191 }
179192
180- log .Debugf ("%v %v %v %v" , r .RemoteAddr , r .Method , r .URL , i .path )
193+ log .Debugf ("%v %v %v %v" , r .RemoteAddr , r .Method , r .URL , i .source )
181194
182195 callback := reflect .New (i .source ).MethodByName (r .Method ).Interface ().(func (http.ResponseWriter , * http.Request ))
183196 callback (w , nr )
0 commit comments