欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

2020-08-10

程序员文章站 2022-03-03 19:01:14
GO语言创建web服务记录创建web服务可以使用很多种方法 这里是用的是基于GO语言内置API创建的 由于本人是之前是做java的所以下面的一些说法可能不够严谨 希望大家理解 谢谢程序入口文件// TestWeb project main.gopackage mainimport ("TestWeb/function""TestWeb/recordlog""fmt""net/http" //导入go语言内置的http服务"github.com/julienschmidt...

GO语言创建web服务记录

创建web服务可以使用很多种方法 这里是用的是基于GO语言内置API创建的 由于本人是之前是做java的所以下面的一些说法可能不够严谨 希望大家理解 谢谢

程序入口文件

// TestWeb project main.go
package main

import (
	"TestWeb/function"
	"TestWeb/recordlog"
	"fmt"
	"net/http" //导入go语言内置的http服务

	"github.com/julienschmidt/httprouter" //导入路由设置的包
)

var (
	routerA *httprouter.Router
	Host    string
	Port    string
)

func init() {
	recordlog.SetLogLevel(recordlog.LevelDebug) //设置日志级别
	setRouter()
}

//设置接口地址
func setRouter() {
	routerA = httprouter.New()
	routerA.GET("/sz.com/getMassage", function.TestFuncObj.GetMessage) //设置接口地址和都映射方法 后面会分析映射的方法 功能方法具有固定的格式
}

func main() {
	Host = "127.0.0.1"
	Port = "8888"
	recordlog.Debug("项目启动") //设置日志组件
	fmt.Println("Hello World!")
	addr := Host + ":" + Port //设置ip和端口
	recordlog.Debug("Start HTTP Server Listen In", addr, "...")
	http.ListenAndServe(addr, routerA) //开启http服务 指定ip 端口号和 路由信息
}

功能方法文件

package function

import (
   "fmt"
   "net/http"

   "github.com/julienschmidt/httprouter"
)

type TestFunc struct{}

//注释2 创建结构体的指针对象 用于调用下面的方法
var TestFuncObj = new(TestFunc)

/*
功能那个方法具有固定的格式 func (参数名称 结构体的指针类型) 方法名称(w http.ResponseWriter, r *http.Request, _ httprouter.Params)   参数是固定的
*/

func (this *TestFunc) GetMessage(w http.ResponseWriter, r *http.Request, _ httprouter.Params) {
   fmt.Println("============打印数据=============")
}

踩坑记录

.\main.go:27:56: invalid method expression function.TestFuncObj.GetMessage (needs pointer receiver: (*function.TestFuncObj).GetMessage)

这个错是因为在功能方法中没有创建指针都对象 直接使用结构体调用方法而产生的 注释2的位置

.\main.go:27:56: function.TestFuncObj.getMessage undefined (cannot refer to unexported method getMessage)

这个错是一个常识性错误 在声明方法时 如果方法首字母大写则可以在其他文件中调用 如果方法首字母小写则在文件外无法调用 这个错误就是因为方法的首字母小写造成的

本文地址:https://blog.csdn.net/xiansheng0813/article/details/107907870

相关标签: GOLang go web