在使用go语言开发的时候,我们会涉及到像其他语言一样定义一些接口方法,供客户端来进行请求。在java里面我们进行web开发一般都需要使用到spring框架,然后通过@requestmapping这个注解+@controller注解来搭配接口开发。但是在go语言里面开发接口就非常的简单,无需这么复杂,本文我们列举下go语言web开发定义接口的三种方式.
前提说明
在go语言中,进行web开发的话,我们主要使用到net/http这个包,所以在进行web开发的时候,我们一定要引入这里的net/http的包。然后所有的方法都围绕这里的http来展开。
第一种方式
这里第一种方式我们主要是通过handlerfunc这个方法来定义接口即可,这个方法非常的直观,和我们写普通的方式模式相同。下面我们直接用代码演示下:
package main import ( "net/http" ) func main() { http.HandleFunc("/hello1", hello) http.ListenAndServe(":8080", nil) } func hello(w http.ResponseWriter, r *http.Request) { w.Write([]byte("hello world")) }
以上是完整的代码,我们只需要首先使用http.handlerFunc定义一个接口,然后里面使用的func里面接受一个request,然后定义一个response,最后通过response进行输出即可,最后我们看看效果:
可以看到我们客户端成功的访问了这个hello1接口。并且实现了服务端的返回。
第二种方式:
第二种方式是我们自定义一个类及方法,这个方法是使用http.handler方法来定义一个接口,这个http.handler里面接收一个类,并且这个类需要实现一个ServeHHTTP(注意这里的大小写)的方法,下面我们还是用代码演示下:
package main import ( "net/http" ) func main() { http.Handle("/hello2", &HelloHandler{}) http.ListenAndServe(":8080", nil) } type HelloHandler struct{} func (h *HelloHandler) ServeHTTP(w http.ResponseWriter, r *http.Request) { w.Write([]byte("hello2 word")) }
在这个方法里面,我们首先定义了一个handler的类:HelloHandler,然后我们根据这个类实现了ServeHTTP这个方法,这个方法里面也是接收两个参数,分别是:request和responsewrite。然后再http的Handler里面传入这个HelloHandler类即可。最后我们来看看实现效果:
第三种方式:
第三种方式其实是上诉第一种和第二种方式的集合,主要使用的函数是handler,只是在后面的参数里面,我们使用http.HandlerFunc做了一个内部类,先上一个示例代码:
package main import ( "net/http" ) func main() { http.Handle("/hello3", http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { w.Write([]byte("hello3 word")) })) http.ListenAndServe(":8080", nil) }
最后我们来看看效果:
以上就是使用go语言开发web接口的3种方式。
备注:
1、这里go语言不用像java那样需要tomcat驱动,这里只需要直接使用ListenAndServe方法声明一下监听端口就相当于启动了服务器。
还没有评论,来说两句吧...