【Go实战基础】用 Go 如何实现一个 HTTP 服务

一、简介

HTTP API 服务是 Go 中最常用的功能之一,可以用最简单的几行代码写出一个性能强大的 HTTP 服务,这就是 Go 的魅力。

用 Go实现一个 http server 非常容易,Go 语言标准库 net/http 自带了一系列结构和方法来帮助开发者简化 HTTP 服务开发的相关流程。因此,我们不需要依赖任何第三方组件就能构建并启动一个高并发的 HTTP 服务器。

二、数据结构

基于HTTP构建的服务标准模型包括两个端,客户端(Client)和服务端(Server)。HTTP 请求从客户端发出,服务端接受到请求后进行处理然后将响应返回给客户端。所以http服务器的工作就在于如何接受来自客户端的请求,并向客户端返回响应。

三、菜鸟实战

实战需求:用 Go 实现一个 HTTP 服务

马上安排!

1、创建 g010.go

/*
 * @Author: 菜鸟实战
 * @FilePath: /go110/go-010/g010.go
 * @Description: http server
 */

package main

import (
	"fmt"
	"log"
	"net/http"
	"runtime"
	"time"

	"github.com/gorilla/mux"
)

func test_hello(w http.ResponseWriter, req *http.Request) {
	fmt.Fprintf(w, "hello\n")
	w.Write([]byte("hello"))
}

func startHttpServer() {

	router := mux.NewRouter()

	//通过完整的path来匹配
	router.HandleFunc("/api/hello", test_hello)

	// 初始化
	srv := &http.Server{
		Handler:      router,
		Addr:         ":8099",
		WriteTimeout: 15 * time.Second,
		ReadTimeout:  15 * time.Second,
	}

	log.Fatal(srv.ListenAndServe())
}

func main() {
	// 使用内置函数打印
	println("Hello", "菜鸟实战")

	startHttpServer()

	// 当前版本
	fmt.Printf("版本: %s \n", runtime.Version())
}

2、编译和运行

# 1、生成模块依赖
go mod init g010
 
# 2、编译
go build g010.go 
 
# 3、编译后的目录结构
 
└── go-010
    ├── g010
    ├── g010.go
    └── go.mod
 
# 4、运行
go run g010

3、运行结果

3.1、启动后显示

Hello 菜鸟实战

 3.2、浏览器访问 API

 http://127.0.0.1:8099/api/hello

菜鸟实战,持续学习! 

评论 14
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

菜鸟实战

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值