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

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.

主站蜘蛛池模板: 象州县| 台南县| 紫云| 晋州市| 宜兴市| 深水埗区| 银川市| 合江县| 山阴县| 丹凤县| 安义县| 弥渡县| 闽清县| 同仁县| 杭州市| 兴和县| 新营市| 奈曼旗| 临高县| 新野县| 桐梓县| 任丘市| 双牌县| 尼勒克县| 虎林市| 石嘴山市| 平潭县| 双牌县| 武山县| 景东| 家居| 望谟县| 阜平县| 噶尔县| 珠海市| 米林县| 南部县| 双峰县| 大港区| 巍山| 贵定县|