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

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.

主站蜘蛛池模板: 甘谷县| 济阳县| 贺兰县| 曲麻莱县| 札达县| 赫章县| 灵寿县| 南安市| 平舆县| 合作市| 英吉沙县| 新河县| 滁州市| 蛟河市| 镇康县| 图木舒克市| 尼木县| 措美县| 鱼台县| 明溪县| 黄陵县| 龙川县| 平江县| 和平区| 抚松县| 谷城县| 钟祥市| 始兴县| 旬阳县| 博爱县| 海原县| 德惠市| 彭阳县| 泽州县| 塔城市| 漯河市| 金阳县| 海伦市| 崇仁县| 盐源县| 洛阳市|