官术网_书友最值得收藏!

Static file handler

Whilst we are mostly going to be dealing with APIs in this book, it is a useful illustration to see how the default router and paths work by adding a secondary endpoint.

As a little exercise, try to modify the code in reading_writing_json_5/reading_writing_json_5.go to add an endpoint /cat, which returns the cat picture specified in the URI. To give you a little hint, you are going to need to use the FileServer function on the net/http package and your URI will look something like http://localhost:8080/cat/cat.jpg.

Did it work the first time or did you forget to add the StripPrefix handler?

Example 1.7 reading_writing_json_6/reading_writing_json_6.go:

21 cathandler := http.FileServer(http.Dir("./images")) 
22 http.Handle("/cat/", http.StripPrefix("/cat/", cathandler))

In the preceding example, we are registering a StripPrefix handler with our path /cat/. If we did not do this, then the FileServer handler would be looking for our image in the images/cat directory. It is also worth reminding ourselves about the difference with /cat and /cat/ as paths. If we registered our path as /cat then we would not match /cat/cat.jpg. If we register our path as /cat/, we will match both /cat and /cat/whatever.

主站蜘蛛池模板: 额尔古纳市| 资源县| 葵青区| 北京市| 鄂托克前旗| 扶余县| 分宜县| 驻马店市| 新乐市| 板桥市| 任丘市| 灵武市| 阿拉尔市| 威海市| 康保县| 巴青县| 余庆县| 长沙市| 乳山市| 福贡县| 田东县| 鹰潭市| 雅安市| 阿拉尔市| 阜南县| 宜兰市| 东城区| 舒城县| 望江县| 株洲县| 攀枝花市| 启东市| 东山县| 云梦县| 独山县| 哈巴河县| 华安县| 德州市| 修水县| 郎溪县| 延津县|