最小限の Web API を構築して Go-Spring の力を実証する

藏色散人
リリース: 2021-12-03 09:37:37
転載
2913 人が閲覧しました

この記事は、Go-Spring を使用して最小限の Web API を構築する方法を紹介する go language チュートリアル コラムによって提供されています。必要としている友人の役に立てば幸いです。

Gopher へ

次は、Go 標準ライブラリを使用して実装された Hello World! プログラムです。コードは本当に少ないです!
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 は現在最も人気のある Web フレームワークの 1 つで、実装されている Hello World! プログラムは次のとおりです。それもとてもシンプルです。

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()}
ログイン後にコピー

Go-Spring を使用して実装された Hello World! プログラムを見てみましょう。こちらも非常にシンプル。

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()}
ログイン後にコピー

ただし、Go-Spring を使用して実装された例には、匿名でインポートされたパッケージがあることがわかります。その機能は、Hello World! プログラムに、基盤となる Web サーバー実装としてgin を使用するように指示することです。この行を次のコードに変更しても、プログラムは通常どおり実行できますが、今回はプログラムは基礎となる Web サーバー実装として Echo を使用します。

_ "github.com/go-spring/starter-echo"
ログイン後にコピー

Go-Spring には匿名パッケージ インポートの行が 1 行増えていますが、標準ライブラリよりも強力な機能が追加されています。

Javaer へ

#Go-Spring は Go 標準ライブラリと同じプログラミング モデルを提供しますが、本質的には IoC (依存性注入) に基づいて実装されているため、標準ライブラリにはない自動設定機能があり、Java Spring Bootと比べてプログラミング効率も悪くありません。

以下は、Java Spring Boot を使用して実装された Hello World! プログラムですが、上の例とは異なり、Java Spring の依存関係注入機能を示すために、JAVA_HOME 環境変数の値も出力します。コードは以下のように表示されます。
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);
  }}
ログイン後にコピー

次は、Go-Spring の依存関係注入機能を使用して、GOPATH 環境変数と Hello World! を同時に出力するプログラムです。コードは以下のように表示されます。

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()}
ログイン後にコピー
上記の 2 つの例を比較すると、Go-Spring が Go と Java Spring の統合を真に実現し、Go (構文) をシンプルに保ちながら、Java Spring の強力な構成機能を備えていることがわかります。

この記事の紹介を通じて、Go-Spring に興味を持ちましたか?急いで試してみてください。

以上が最小限の Web API を構築して Go-Spring の力を実証するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
go
ソース:learnku.com
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート