Membina API RESTful dan gRPC menggunakan Golang
Dalam artikel ini, kami akan memperkenalkan cara mencipta perkhidmatan RESTful API dan gRPC di Golang. Kami akan merangkumi proses persediaan asas, menggunakan rangka kerja dan memberikan contoh praktikal.
RESTful API
1. Sediakan persekitaran
pergi dapatkan github.com/gin-gonic/gin
go get github.com/gin-gonic/gin
2. 创建 RESTful API
在 main.go
文件中:
package main import ( "github.com/gin-gonic/gin" ) func main() { router := gin.Default() router.GET("/hello", HelloHandler) router.Run() // 监听端口 } func HelloHandler(c *gin.Context) { c.JSON(200, gin.H{ "message": "Hello, world!", }) }
gRPC
1. 设置环境
go mod tidy
go get github.com/golang/protobuf/protoc-gen-go
2. 定义 protobuf
创建一个 .proto
文件,定义服务接口和消息类型:
syntax = "proto3"; package example; message HelloRequest { string name = 1; } message HelloResponse { string message = 1; } service HelloService { rpc SayHello (HelloRequest) returns (HelloResponse); }
3. 生成 gRPC 代码
使用 protoc 生成 Go 代码:
protoc --go_out=. --go-grpc_out=. hello.proto
4. 创建 gRPC 服务
在 main.go
2 Cipta API RESTful
dalammain.go</. kod> Dalam fail: <p><div class="code" style="position:relative; padding:0px; margin:0px;"><pre class='brush:go;toolbar:false;'>package main
import (
"context"
"fmt"
"log"
"net"
"example/hello"
"google.golang.org/grpc"
)
type helloServer struct{}
func (s *helloServer) SayHello(ctx context.Context, req *hello.HelloRequest) (*hello.HelloResponse, error) {
return &hello.HelloResponse{Message: "Hello, " + req.Name}, nil
}
func main() {
lis, err := net.Listen("tcp", ":5000")
if err != nil {
log.Fatalf("failed to listen: %v", err)
}
s := grpc.NewServer()
hello.RegisterHelloServiceServer(s, &helloServer{})
log.Println("gRPC server listening on port 5000")
if err := s.Serve(lis); err != nil {
log.Fatalf("failed to serve: %v", err)
}
}</pre><div class="contentsignin">Salin selepas log masuk</div></div><p>gRPC<strong></strong></p>
<p>1. Sediakan persekitaran </p>🎜🎜🎜Pasang Golang dan Google Cloud Go SDK: <code>go mod tidy
🎜🎜: .proto
untuk mentakrifkan perkhidmatan. antara muka dan jenis mesej: 🎜 rrreee🎜🎜3. Jana kod gRPC🎜🎜🎜Gunakan protok untuk menjana kod Go:🎜rrreee🎜🎜4. Cipta perkhidmatan gRPC🎜🎜🎜 dalam fail >.go🎜rrreee🎜🎜Kes praktikal: API Blog 🎜🎜🎜 Gunakan API RESTful dan gRPC untuk membina API blog yang membolehkan pengguna membuat, membaca, mengemas kini dan memadam catatan blog. 🎜🎜🎜Kesimpulan🎜🎜🎜Dalam artikel ini, kami memperkenalkan cara membina RESTful API dan perkhidmatan gRPC menggunakan Golang. Kami menggunakan rangka kerja Gin untuk menyediakan API RESTful dan mencipta contoh yang berfungsi untuk API blog menggunakan gRPC. Gabungan teknologi ini membolehkan anda membina aplikasi API yang cekap dan berskala. 🎜
Atas ialah kandungan terperinci Bagaimana untuk membina API RESTful menggunakan Golang dan menggunakan gRPC?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!