-
Notifications
You must be signed in to change notification settings - Fork 0
/
endpoints.go
62 lines (51 loc) · 1.84 KB
/
endpoints.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
package minirest
type endpoint struct {
method string
path string
callback interface{}
}
// Endpoints register handlers its path and method
type Endpoints struct {
// Set to true for returning gzip encoded response on all endpoints
Gzip bool
basePath string
endpoints []endpoint
middleware *handleChain
}
// BasePath set base path for endpoints
func (ep *Endpoints) BasePath(path string) {
ep.basePath = path
}
// Add add endpoint with custom method
func (ep *Endpoints) Add(method, path string, callback interface{}) {
ep.endpoints = append(ep.endpoints, endpoint{method, path, callback})
}
// GET add endpoint with method GET
func (ep *Endpoints) GET(path string, callback interface{}) {
ep.endpoints = append(ep.endpoints, endpoint{"GET", path, callback})
}
// DELETE add endpoint with method DELETE
func (ep *Endpoints) DELETE(path string, callback interface{}) {
ep.endpoints = append(ep.endpoints, endpoint{"DELETE", path, callback})
}
// POST add method endpoint with method POST
func (ep *Endpoints) POST(path string, callback interface{}) {
ep.endpoints = append(ep.endpoints, endpoint{"POST", path, callback})
}
// PUT add method endpoint with method PUT
func (ep *Endpoints) PUT(path string, callback interface{}) {
ep.endpoints = append(ep.endpoints, endpoint{"PUT", path, callback})
}
// PATCH add method endpoint with method PATCH
func (ep *Endpoints) PATCH(path string, callback interface{}) {
ep.endpoints = append(ep.endpoints, endpoint{"PATCH", path, callback})
}
// Middlewares register middleware chain.
// miniREST is using julienschmidt/httprouter for implementing router,
// so the middleware will use httprouter.Handle as its handle
func (ep *Endpoints) Middlewares(mds ...handleToHandle) {
if ep.middleware == nil {
ep.middleware = new(handleChain)
}
ep.middleware.handles = append(ep.middleware.handles, mds...)
}