Maison  >  Article  >  développement back-end  >  Démontrer la puissance de Go-Spring en créant une API Web minimale

Démontrer la puissance de Go-Spring en créant une API Web minimale

藏色散人
藏色散人avant
2021-12-03 09:37:372867parcourir

Cet article est écrit par la colonne tutoriel go Language pour présenter comment utiliser Go-Spring pour créer une API Web minimale. J'espère qu'il sera utile aux amis dans le besoin !

Le langage Go est célèbre pour sa simplicité. Un exemple très évident est que seuls quelques codes peuvent être réalisés pour réaliser la plus petite API Web. Go-Spring combine les avantages de la simplicité de Go et de la configuration automatique de Spring. Cet article démontre la simplicité et la puissance de Go-Spring à travers plusieurs exemples d'implémentation d'API Web minimales.

To GopherCe qui suit est le programme Hello World! implémenté à l'aide de la bibliothèque standard Go. Il y a vraiment peu de code !

package mainimport (
  "net/http")func main() {
  http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {
    w.Write([]byte("Hello World!"))
  })
  http.ListenAndServe(":8080", nil)}

Gin est l'un des frameworks Web les plus populaires à l'heure actuelle. Le programme Hello World qu'il implémente est le suivant. C'est aussi très simple.

package mainimport (
  "github.com/gin-gonic/gin"
  "github.com/gin-gonic/gin/ginS")func main() {
  ginS.GET("/", func(c *gin.Context) {
    c.String(200, "Hello World!")
  })
  ginS.Run()}

Jetons un coup d'œil au programme Hello World! implémenté à l'aide de Go-Spring. Aussi très simple.

package mainimport (
  "github.com/go-spring/spring-core/gs"
  "github.com/go-spring/spring-core/web"
  _ "github.com/go-spring/starter-gin")func main() {
  gs.GetMapping("/", func(ctx web.Context) {
    ctx.String("Hello World!")
  })
  gs.Run()}

Cependant, vous pouvez remarquer qu'il existe un package importé de manière anonyme dans l'exemple implémenté à l'aide de Go-Spring. Sa fonction est d'indiquer au programme Hello World! Si nous modifions cette ligne par le code suivant, le programme peut toujours s'exécuter normalement, mais cette fois, le programme utilise Echo comme implémentation sous-jacente du serveur Web.

_ "github.com/go-spring/starter-echo"

Bien que Go-Spring dispose d'une ligne supplémentaire d'importation de packages anonymes, il a acquis des fonctionnalités plus puissantes que la bibliothèque standard.

Pour JavaerBien que Go-Spring fournisse le même modèle de programmation que la bibliothèque standard Go, elle est essentiellement implémentée sur la base de l'IoC (injection de dépendances), elle dispose donc de capacités de configuration automatique que la bibliothèque standard n'a pas, et Par rapport à Java Spring Boot, l'efficacité de la programmation de Go-Spring n'est pas mauvaise non plus.

Ce qui suit est un programme Hello World! implémenté à l'aide de Java Spring Boot, mais contrairement à l'exemple ci-dessus, afin de démontrer les capacités d'injection de dépendances de Java Spring, il imprime également la valeur de la variable d'environnement JAVA_HOME. Le code est le suivant.

package com.example.demo11;import org.springframework.beans.factory.annotation.Value;import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplication;import org.springframework.web.bind.annotation.GetMapping;import org.springframework.web.bind.annotation.RestController;@RestControllerclass MyController {

  @Value("${JAVA_HOME}")
  String JavaHome;

  @GetMapping("/")
  public String hello() {
    return this.JavaHome + " - Hello World!";
  }}@SpringBootApplicationpublic class Demo11Application {

  public static void main(String[] args) {
    SpringApplication.run(Demo11Application.class, args);
  }}

Ce qui suit est un programme qui utilise la capacité d'injection de dépendances de Go-Spring pour imprimer la variable d'environnement GOPATH et Hello World en même temps. Le code est le suivant.

package mainimport (
  "github.com/go-spring/spring-core/gs"
  "github.com/go-spring/spring-core/web"
  _ "github.com/go-spring/starter-gin")func init() {
  gs.Object(new(MyController)).Init(func(c *MyController) {
    gs.GetMapping("/", c.Hello)
  })}type MyController struct {
  GoPath string `value:"${GOPATH}"`}func (c *MyController) Hello(ctx web.Context) {
  ctx.String(c.GoPath + " - Hello World!")}func main() {
  gs.Run()}

En comparant les deux exemples ci-dessus, nous pouvons voir que Go-Spring réalise véritablement l'intégration de Go et Java Spring, en gardant Go (syntaxe) simple tout en ayant les puissantes capacités de configuration de Java Spring.

À travers l’introduction de cet article, êtes-vous intéressé par Go-Spring ? Dépêchez-vous et essayez-le !

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!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer