go语言下的RESTful简介

go语言下的RESTful简介

简介

REST(REpresentational State Transfer)指的是一组架构约束条件和原则。

Web 应用程序最重要的 REST 原则是,客户端和服务器之间的交互在请求之间是无状态的。从客户端到服务器的每个请求都必须包含理解请求所必需的信息。客户端可以缓存数据以改进性能。

1.资源

就是我们平常上网访问的一张图片、一个文档、一个视频等。

2.表现层

就是资源的展现方式

例如一个txt文本信息,他可以输出成html、json、xml等格式,一个图片他可以jpg、png等方式展现。

3.状态转化

web中,客户端能通知服务器端的手段,只能是HTTP协议。HTTP协议四个表示操作方式的动词get ,post ,put,delete

综上:

(1)每一个URI代表一种资源;

(2)客户端和服务器之间,传递这种资源的某种表现层;

(3)客户端通过四个HTTP动词,对服务器端资源进行操作,实现"资源 表现层 状态转化"。

示例

下载第三方库

go get github.com/julienschmidt/httprouter
package main

import (
	"fmt"
	"github.com/julienschmidt/httprouter"
	"net/http"
)

func getuser(w http.ResponseWriter, r *http.Request,ps httprouter.Params) {
	//获取前端发来的数据
	uid:=ps.ByName("uid")
	fmt.Fprintf(w, "获取用户名 %s\n", uid)
	mo:= r.Method
	fmt.Fprintf(w, "获取请求方式 %s\n", mo)

	//准备返回给前端的数据
	data := map[string]interface{}{
		"errno":  0,
		"errmsg": "ok",
		"data":   "test",
	}

	//设置返回数据的格式(头部信息,json格式)
	w.Header().Set("Content-Type", "application/json")
	
	//将数据data转化为json格式, 并返回给前端
	if err := json.NewEncoder(w).Encode(data); err != nil {
		http.Error(w, err.Error(), 500)
		return
	}
}

func main() {
	router := httprouter.New()
	router.GET("/getuser/:uid", getuser)

	http.Handle("/", router)
	http.ListenAndServe(":8090", nil)
}

在浏览器访问http://127.0.0.1:8090/getuser/shuffle

会在页面显示

获取用户名 shuffle
获取请求方式 GET
{“data”:“test”,“errmsg”:“ok”,“errno”:0}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值