Skip to Main Content
Go程序设计语言
book

Go程序设计语言

by 艾伦A. A.多诺万, 布莱恩W. 柯尼汉
August 2021
Beginner to intermediate content levelBeginner to intermediate
450 pages
6h 1m
Chinese
Pearson
Content preview from Go程序设计语言

7.7 http.Handler接口

第1章简单介绍了如何用net/http包来实现Web客户端(参考1.5节)和服务器(参考1.7节)。本节将进一步讨论服务端API,以及作为其基础的http.Handler接口。

ListenAndServe函数需要一个服务器地址,比如“localhost:8000”,以及一个Handler接口的实例(用来接受所有的请求)。这个函数会一直运行,直到服务出错(或者启动时就失败了)时返回一个非空的错误。

设想一个电子商务网站,使用一个数据库来存储商品和价格(以美元计价)的映射。如下程序将展示一个最简单的实现。它用一个map类型(命名为database)来代表仓库,再加上一个ServeHTTP方法来满足http.Handler接口。这个函数遍历整个map并且输出其中的元素:

如果启动服务器:

使用1.5节的fetch程序来连接服务器(也可以用Web浏览器),可以得到如下输出:

到现在为止,这个服务器只能列出所有的商品,而且是完全不管URL,对每个请求都是如此。一个更加真实的服务器会定义多个不同URL,每个触发不同的行为。我们把现有功能的URL设为/list,再加上另外一个/price用来显示单个商品的价格,商品可以在请求参数中指定,比如/price?item=socks: ...

Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Start your free trial

You might also like

C++语言导学(原书第2版)

C++语言导学(原书第2版)

本贾尼 斯特劳斯特鲁普
Go语言编程

Go语言编程

威廉·肯尼迪

Publisher Resources

ISBN: 9787111558422