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

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.

主站蜘蛛池模板: 汉源县| 清水县| 陆河县| 积石山| 黔西县| 米泉市| 若羌县| 盐津县| 屏南县| 上林县| 穆棱市| 离岛区| 阳春市| 高阳县| 云梦县| 静海县| 措美县| 阿拉善盟| 赫章县| 武宁县| 宜君县| 乡宁县| 许昌市| 连南| 贺州市| 运城市| 于都县| 秦安县| 永德县| 阿克陶县| 大同市| 怀宁县| 金溪县| 资兴市| 承德县| 临沂市| 青阳县| 三明市| 丽水市| 福清市| 通许县|