Maison > développement back-end > Golang > le corps du texte

Comment créer une API RESTful à l'aide de Golang et utiliser gRPC ?

WBOY
Libérer: 2024-05-31 19:46:00
original
600 Les gens l'ont consulté

如何使用 Golang 构建 RESTful API 并使用gRPC?

Créer une API RESTful et gRPC à l'aide de Golang

Dans cet article, nous présenterons comment créer des services API RESTful et gRPC dans Golang. Nous couvrirons le processus de configuration de base, en utilisant le framework et fournirons un exemple pratique.

API RESTful

1. Configurez l'environnement

  • Installez Golang et configurez la variable d'environnement GOPATH.
  • Installez le framework Gin : allez chercher github.com/gin-gonic/gingo 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!",
    })
}
Copier après la connexion

gRPC

1. 设置环境

  • 安装 Golang 和 Google Cloud Go SDK:go mod tidy
  • 安装 gRPC: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);
}
Copier après la connexion

3. 生成 gRPC 代码

使用 protoc 生成 Go 代码:

protoc --go_out=. --go-grpc_out=. hello.proto
Copier après la connexion

4. 创建 gRPC 服务

main.go

2 Créez une API RESTful

dans main.go</. code> Dans le fichier : <p><div class="code" style="position:relative; padding:0px; margin:0px;"><pre class='brush:go;toolbar:false;'>package main import ( &quot;context&quot; &quot;fmt&quot; &quot;log&quot; &quot;net&quot; &quot;example/hello&quot; &quot;google.golang.org/grpc&quot; ) type helloServer struct{} func (s *helloServer) SayHello(ctx context.Context, req *hello.HelloRequest) (*hello.HelloResponse, error) { return &amp;hello.HelloResponse{Message: &quot;Hello, &quot; + req.Name}, nil } func main() { lis, err := net.Listen(&quot;tcp&quot;, &quot;:5000&quot;) if err != nil { log.Fatalf(&quot;failed to listen: %v&quot;, err) } s := grpc.NewServer() hello.RegisterHelloServiceServer(s, &amp;helloServer{}) log.Println(&quot;gRPC server listening on port 5000&quot;) if err := s.Serve(lis); err != nil { log.Fatalf(&quot;failed to serve: %v&quot;, err) } }</pre><div class="contentsignin">Copier après la connexion</div></div><p>gRPC<strong></strong></p> <p>1. Configurer l'environnement </p>🎜🎜🎜Installer Golang et Google Cloud Go SDK : <code>go mod spice🎜🎜Installer gRPC : allez chercher github. com/golang/protobuf/protoc-gen-go🎜🎜🎜2 Définissez protobuf🎜🎜🎜Créez un fichier .proto pour définir le service. interface et type de message : 🎜 rrreee🎜🎜3. Générez le code gRPC🎜🎜🎜Utilisez le protocole pour générer le code Go :🎜rrreee🎜🎜4. Créez un service gRPC🎜🎜🎜dans le fichier main.go : 🎜rrreee🎜🎜Cas pratique : API de blog 🎜🎜🎜 Utilisez l'API RESTful et gRPC pour créer une API de blog qui permet aux utilisateurs de créer, lire, mettre à jour et supprimer des articles de blog. 🎜🎜🎜Conclusion🎜🎜🎜Dans cet article, nous avons présenté comment créer une API RESTful et des services gRPC à l'aide de Golang. Nous avons utilisé le framework Gin pour servir une API RESTful et créé un exemple fonctionnel pour une API de blog utilisant gRPC. Cette combinaison de technologies vous permet de créer des applications API efficaces et évolutives. 🎜

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal