Go-RESTful-创建RESTful API服务(三)|焦点报道
2023-05-02 11:13:33 来源:腾讯云
(资料图片仅供参考)
下面是一个完整的示例,展示如何使用Go-RESTful框架创建一个简单的RESTful API服务。这个示例提供了两个路由:GET /users和POST /users,分别用于获取用户列表和创建一个新用户。用户信息以JSON格式返回给客户端。
package mainimport ( "encoding/json" "log" "net/http" "github.com/emicklei/go-restful")// 用户结构体type User struct { ID int `json:"id"` Name string `json:"name"` Email string `json:"email"`}// 用户列表var users = []User{ {ID: 1, Name: "Alice", Email: "alice@example.com"}, {ID: 2, Name: "Bob", Email: "bob@example.com"}, {ID: 3, Name: "Charlie", Email: "charlie@example.com"},}// 获取所有用户func getUsers(request *restful.Request, response *restful.Response) { // 将用户列表转换为JSON格式,并写入HTTP响应 response.WriteEntity(users)}// 创建一个新用户func createUser(request *restful.Request, response *restful.Response) { // 从HTTP请求中读取用户信息 var user User err := request.ReadEntity(&user) if err != nil { response.WriteErrorString(http.StatusBadRequest, err.Error()) return } // 生成新的用户ID maxID := 0 for _, u := range users { if u.ID > maxID { maxID = u.ID } } user.ID = maxID + 1 // 将新用户添加到用户列表 users = append(users, user) // 返回新用户信息 response.WriteHeaderAndEntity(http.StatusCreated, user)}func main() { // 创建一个新的WebService对象 ws := new(restful.WebService) // 定义路由 ws.Route(ws.GET("/users").To(getUsers)) ws.Route(ws.POST("/users").To(createUser)) // 将WebService对象注册到RESTful框架中 restful.Add(ws) // 启动HTTP服务器 log.Fatal(http.ListenAndServe(":8080", nil))}
在这个示例中,我们定义了一个名为User的结构体,用于表示用户信息。我们还定义了一个名为users的变量,用于存储所有用户的列表。
我们编写了两个处理函数:getUsers和createUser。getUsers函数用于返回所有用户的列表,createUser函数用于创建一个新用户。这两个处理函数都遵循了Go-RESTful的处理函数签名,并使用了Request和Response对象来处理HTTP请求和响应。
我们还创建了一个新的WebService对象“ws”,并使用其Route方法来定义了两个路由,分别是GET /users和POST /users。这两个路由分别指向了不同的处理函数getUsers和createUser。
最后,我们将WebService对象注册到Go-RESTful框架中,并启动了HTTP服务器。
关键词:
相关阅读
-
Go-RESTful-创建RESTful API服务(三)|焦点报道
下面是一个完整的示例,展示如何使用Go-RESTful框架创建一个简单的R... -
天天即时:美国伊利诺伊州州际公路连环...
本文转自【央视新闻客户端】;当地时间5月1日,美国伊利诺伊州南部5... -
小鹏G6最新消息:网传5月下旬预售,6月上市
5月2日消息,网传小鹏G6将在“5月下旬开启预售,6月正式上市”,该... -
天天最新:劳动者的十二时辰 致敬全国...
现代快报网是由凤凰出版传媒集团旗下的现代快报倾力打造的江苏新闻... -
希腊学者:教育合作有利于推动希中文明...
新华社雅典4月30日电(记者于帅帅刘叶雨)希腊教育界官员及多位学者... -
当前播报:奋斗的过程本身是一种幸福
“凡人有光,闪着渺小耀眼的锋芒。”在我们身边,每一位平凡的劳动... -
井深9472米?亚洲最深井在塔里木盆地正式开钻
人民网北京5月2日电(记者杜燕飞)记者从中国石化获悉,5月1日,中... -
“付出总会有回报” 95后天车司机苦练...
“我们日常吊装的火车零部件有25吨左右,稍有不慎就会发生安全问题... -
柳祥国:创“锌”带头人 用心做就有无...
“锌电解的工艺看似简单、流程短,但其中包含了很多技巧和学问。只... -
世界报道:在我心中你最美歌词_在我心中...
欢迎观看本篇文章,小升来为大家解答以上问题。在我心中你最美歌词... -
国际论坛:中国是全球互联互通的关键驱...
国际论坛麦肯锡全球研究院对30条价值链、约6000种产品的调查研究显... -
足球推文丨弗兰克·兰帕德:“我认为将...
足球推文丨弗兰克·兰帕德:“我认为将阿森纳的故事与我们的故事进... -
粉煤灰在混凝土中的作用主要有 粉煤灰...
今天来聊聊关于粉煤灰在混凝土中的作用主要有,粉煤灰在混凝土中的... -
剥出海瓜子肉炒蟹,厦门这家古厝黑珍珠...
曲径通幽。竹林深深,红砖木门,从热闹的马路拐进红厝8号就被这清雅... -
环球今头条!北宋时期,朋党之争的主要...
再一条就是“不杀大臣”,宋朝的这一制度给了宋朝的言官和士大夫很... -
2023年促进跨境贸易便利化专项行动展开
据新华社北京电(记者邹多为)为进一步打造优化口岸营商环境示范高... -
在提质增效的加速度中稳步向前
春日里,杭州地铁三号线二期项目世纪大道站施工现场,一声“开工”... -
广西最长跨海大桥全面进入上部结构施工...
这是建设中的广西龙门大桥项目(5月1日摄,无人机照片)。近日,位... -
微视界里的大国匠心
从“中国天眼”上的一根钢索,到铺就贵州“高速平原”的一粒砂石;... -
天天热议:赌客在澳门赌场爆发混战,警方...
大批内地旅客趁“五一黄金周”前往澳门旅游,但昨日出现不愉快事件。