@@ -201,22 +201,34 @@ func main() {
201
201
r.HandleFunc (" /products" , handler).Methods (" POST" )
202
202
r.HandleFunc (" /articles" , handler).Methods (" GET" )
203
203
r.HandleFunc (" /articles/{id}" , handler).Methods (" GET" , " PUT" )
204
+ r.HandleFunc (" /authors" , handler).Queries (" surname" , " {surname}" )
204
205
r.Walk (func (route *mux.Route , router *mux.Router , ancestors []*mux.Route ) error {
205
206
t , err := route.GetPathTemplate ()
206
207
if err != nil {
207
208
return err
208
209
}
210
+ qt , err := route.GetQueriesTemplates ()
211
+ if err != nil {
212
+ return err
213
+ }
209
214
// p will contain regular expression is compatible with regular expression in Perl, Python, and other languages.
210
215
// for instance the regular expression for path '/articles/{id}' will be '^/articles/(?P<v0>[^/]+)$'
211
216
p , err := route.GetPathRegexp ()
212
217
if err != nil {
213
218
return err
214
219
}
220
+ // qr will contain a list of regular expressions with the same semantics as GetPathRegexp,
221
+ // just applied to the Queries pairs instead, e.g., 'Queries("surname", "{surname}") will return
222
+ // {"^surname=(?P<v0>.*)$}. Where each combined query pair will have an entry in the list.
223
+ qr , err := route.GetQueriesRegexp ()
224
+ if err != nil {
225
+ return err
226
+ }
215
227
m , err := route.GetMethods ()
216
228
if err != nil {
217
229
return err
218
230
}
219
- fmt.Println (strings.Join (m, " ," ), t, p)
231
+ fmt.Println (strings.Join (m, " ," ), strings. Join (qt, " , " ), strings. Join (qr, " , " ), t, p)
220
232
return nil
221
233
})
222
234
http.Handle (" /" , r)
@@ -339,22 +351,34 @@ r.HandleFunc("/", handler)
339
351
r.HandleFunc (" /products" , handler).Methods (" POST" )
340
352
r.HandleFunc (" /articles" , handler).Methods (" GET" )
341
353
r.HandleFunc (" /articles/{id}" , handler).Methods (" GET" , " PUT" )
354
+ r.HandleFunc (" /authors" , handler).Queries (" surname" , " {surname}" )
342
355
r.Walk (func (route *mux.Route , router *mux.Router , ancestors []*mux.Route ) error {
343
356
t , err := route.GetPathTemplate ()
344
357
if err != nil {
345
358
return err
346
359
}
360
+ qt , err := route.GetQueriesTemplates ()
361
+ if err != nil {
362
+ return err
363
+ }
347
364
// p will contain a regular expression that is compatible with regular expressions in Perl, Python, and other languages.
348
365
// For example, the regular expression for path '/articles/{id}' will be '^/articles/(?P<v0>[^/]+)$'.
349
366
p , err := route.GetPathRegexp ()
350
367
if err != nil {
351
368
return err
352
369
}
370
+ // qr will contain a list of regular expressions with the same semantics as GetPathRegexp,
371
+ // just applied to the Queries pairs instead, e.g., 'Queries("surname", "{surname}") will return
372
+ // {"^surname=(?P<v0>.*)$}. Where each combined query pair will have an entry in the list.
373
+ qr , err := route.GetQueriesRegexp ()
374
+ if err != nil {
375
+ return err
376
+ }
353
377
m , err := route.GetMethods ()
354
378
if err != nil {
355
379
return err
356
380
}
357
- fmt.Println (strings.Join (m, " ," ), t, p)
381
+ fmt.Println (strings.Join (m, " ," ), strings. Join (qt, " , " ), strings. Join (qr, " , " ), t, p)
358
382
return nil
359
383
})
360
384
```
0 commit comments