ホームページ > バックエンド開発 > Golang > Beego で Swagger を使用し、Postman と組み合わせて API テストを行う

Beego で Swagger を使用し、Postman と組み合わせて API テストを行う

王林
リリース: 2023-06-22 11:02:14
オリジナル
1125 人が閲覧しました

Beego は、Go 言語 Web アプリケーションを迅速に開発するための Web フレームワークであり、開発プロセスを簡素化するための多くの機能とツールを提供します。これらの機能とツールには、Swagger (API ドキュメント生成ツール) と Postman (API テスト ツール) のサポートが含まれており、どちらも開発者が API を簡単に管理およびテストできるようにします。この記事では、Beego で Swagger を使用し、Postman のパフォーマンスを組み合わせる方法を紹介します。 APIのテスト。

1. Swagger のインストール

Swagger は、RESTful Web サービスを設計、構築、文書化、テストするためのオープンソース フレームワークです。 Swagger を使用すると、動的に生成された API ドキュメントで各 API メソッドのリクエストとレスポンスを表示できます。

まず、Swagger をインストールする必要があります。次のコマンドを入力します:

go get -u github.com/swaggo/swag/cmd/swag

インストールが完了したら、次のコマンドを再度入力します:

swag init

これにより、Beego アプリケーションのルート ディレクトリに、生成された Swagger ドキュメントを含む docs フォルダーが生成されます。

2. Swagger を Beego に統合する

次に、Swagger を Beego に統合する必要があります。これを行うには、main.go ファイルに swagger と beego/context の依存関係を導入する必要があります。

import(

"github.com/astaxie/beego"
"github.com/astaxie/beego/context"
_ "your-app-doc-path/docs"
ログイン後にコピー

)

次に、main.go ファイルの init() 関数に次のコードを追加します。

func main( ) {

if beego.BConfig.RunMode == beego.DEV {
    beego.BConfig.WebConfig.DirectoryIndex = true
    beego.BConfig.WebConfig.StaticDir["/swagger"] = "swagger"
    // 添加路由,可以自定义,这里设置为/swagger
    beego.InsertFilter("/*", beego.BeforeRouter, func(ctx *context.Context) {
        ctx.Output.Header("Access-Control-Allow-Origin", "*")
        ctx.Output.Header("Access-Control-Allow-Headers", "Content-Type,Token")
        ctx.Output.Header("Access-Control-Allow-Methods", "POST,GET")
    })
}

// 注册Swagger路由
beego.BConfig.WebConfig.StaticDir["/docs"] = "docs"
beego.BeeApp.Handlers.Get("/docs/*", func(ctx *context.Context) {
    ctx.Output.Header("Content-Type", "text/html;charset=utf-8")
    ctx.Output.Body(swaggerFiles.Index)
})
ログイン後にコピー

}

このコードは、Swagger UI ファイルを保存するために、アプリケーションのルート ディレクトリに Swagger フォルダーを作成します。 Beego が初期化されると、Swagger UI ディレクトリが静的ルートとして登録されます。 Swagger UI は静的な HTML、CSS、および JavaScript ファイルのセットであるため、これらのファイルには静的なリソース ディレクトリからアクセスします。

次の URL を入力して、ブラウザで Swagger UI を開く必要があります:

http://localhost:[port]/docs/index.html

ここでは、 [port] をサーバーのポート番号に置き換えてください。

3. Swagger コメントを書く

Swagger を統合したら、API の Swagger コメントを書く必要があります。これは次の方法で実行できます。

まず、ファイル swagger.go を作成し、次のコードを追加します。

packagecontrollers

/* Operation category
*/

// swagger:parameters add sub
type オペランド struct {

// The first operand
// in: path
// required: true
A int `json:"a"`
// The second operand
// in: path
// required: true
B int `json:"b"`
ログイン後にコピー

}

/* 戻り値
*/

/ / swagger:response OperResult
type OperandsResultWrapper struct {

// in:body
Body struct {
    // 运算结果
    Result int `json:"result,omitempty"`
}
ログイン後にコピー

}

/ Add/

// swagger:route GET /add /{a}/{b} add
//
// 追加用
//
// サポートされる述語: GET
// パラメーター:
// A: (パス) - 最初のオペランド (整数のみ)
// B: (パス) - 2 番目のオペランド (整数のみ)
// 受け入れられるコンテンツ:
// 生成されます:
// 結果を返す (application/json)
// エラー (application/json)
//
// swagger:parameters add
// swagger:response OperResult
func (o *OperationController) Add() {

// ...
ログイン後にコピー

}

ここでは、API リクエストとレスポンスを記述するために Swagger アノテーションを定義します。注釈は、Swagger 構文を使用して、ルーティング ルール、コマンド パラメーター、および結果の型を記述します。具体的には:

  • 操作カテゴリ (パラメータ タイプ) は、API に渡されるパラメータを記述します。
  • 戻り結果 (応答タイプ) は、API によってクライアントに返される値の形式を記述します。

4. API をテストする

これで、Beego アプリケーションは Swagger を使用できるようになり、適切な Swagger アノテーションが追加されました。次に、Postman を使用して API をテストできます。

Postman で、API URL アドレスと必要なパラメーターを入力し、GET 動詞を選択します。その後、swagger_generated_api_test.go ファイル内のテストのような一連のテストを使用して、API が適切に動作していることを確認できるようになります。

5. 概要

この記事では、Beego で Swagger を使用し、API テストのために Postman と組み合わせる方法を紹介しました。最初に Swagger のインストール方法を紹介し、次に Swagger を Beego に統合する方法を示しました。次に、Swagger アノテーションを記述し、API テストに Postman を使用する方法を示しました。これらの手順は、Beego を使用して RESTful Web API を開発する開発者にとって非常に重要です。これにより、開発者は高品質の Web アプリケーションの開発とテストをより迅速かつ簡単に行うことができます。

以上がBeego で Swagger を使用し、Postman と組み合わせて API テストを行うの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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