当前位置:   article > 正文

Go语言学习之路(七)写一个简单的后端接口_go 写一个接口

go 写一个接口

前言

学习了一些基础知识了,那么重要的来了,那就是网络编程,简单的来说,先来一个后端的接口吧,当然这也得结合我们的包结构等。

开始编码

1、创建包结构

这个就比较简单了,按照我们一般的web编程,主要包结构就只有controller、service、mapper(repository)三层,还有一些其他的比如说config、utils这些非必须的本章就不做多的赘述,建好如下包结构
在这里插入图片描述
暂时没有用到数据库所有repository可能暂时没用哦

2、接口编写

  • 主方法编写
    主方法中我们需要指定监听的端口,也就是服务占用的端口,才能够让别人找到我们,就如同门牌号
// 指定端口号为80,启动服务后不报错,服务就会一直运行下去
func main() {
	err := http.ListenAndServe(":80", nil)
	if err != nil {
		log.Fatalln(err)
	}
}
// 当然也可以使用defer进行异常捕获
func main() {
	defer func() {
		if err := recover(); err != nil {
			fmt.Println(err)
		}
	}()
	err := http.ListenAndServe(":80", nil)
	if err != nil {
		log.Fatalln(err)
	}
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19

还有一个重要的,请求路径的监听

func main() {
	defer func() {
		if err := recover(); err != nil {
			fmt.Println(err)
		}
	}()
	// 请求路径为 /test的请求,调用controller包下的helloController的Hello方法
	http.HandleFunc("/hello", controller.HelloController.Hello)
	err := http.ListenAndServe(":80", nil)
	if err != nil {
		log.Fatalln(err)
	}
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • controller编写
    在controller包下,我们新建一个叫做hello_controller.go的文件,里面的代码如下所示
// 包名,文件生成时自动填充
package controller
// 导入的依赖
import (
	"awesomeProject/service"
	"fmt"
	"net/http"
)

var HelloController = newHelloController()

type helloController struct {
}

func newHelloController() *helloController {
	return &helloController{}
}
// 指定方法
func (c *helloController) Hello(r http.ResponseWriter, q *http.Request) {
	method := q.Method
	fmt.Println(method)
	fmt.Fprintf(r, service.HelloService.Hello())
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • service编写
    controller调用service方法,hello_service.go文件在service包下
package service

type helloService struct {
}

var HelloService = newHelloService()

func newHelloService() *helloService {
	return &helloService{}
}

func (s *helloService) Hello() string {
	// 自己的业务处理
	return "hello"
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15

现在我们就可以开始使用postman调用或者其他调用,来测试我们的接口了

接口调用

在这里插入图片描述
可以看到,接口调用成功,并且有返回值了
在这里插入图片描述
这里我们也取到了请求方式。

注意

controller中的方法为什么入参是ResponseWriter和Request呢
HandleFunc这个方法规定了第二个参数方法必须要有什么入参

// 这个方法规定的入参
func HandleFunc(pattern string, handler func(ResponseWriter, *Request)) {
	DefaultServeMux.HandleFunc(pattern, handler)
}
  • 1
  • 2
  • 3
  • 4
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/weixin_40725706/article/detail/457394
推荐阅读
相关标签
  

闽ICP备14008679号