Beego での API ゲートウェイ管理に Kong を使用する
マイクロサービス アーキテクチャの人気に伴い、API ゲートウェイへの注目がますます高まっています。マイクロサービス アーキテクチャの重要なコンポーネントの 1 つである API ゲートウェイは、リクエストの分散、リクエストのルーティング、リクエストのフィルタリングを担当するアプリケーションです。 Kong は、その柔軟性、拡張性、使いやすさにより、多くの企業の間で最も人気のある API ゲートウェイの 1 つとなっています。
Beego は、RESTful API 開発のサポートを提供できる、Go アプリケーションの迅速な開発のためのフレームワークです。この記事では、Beego で API ゲートウェイ管理に Kong を使用する方法を説明します。
- Kong のインストール
まず、Kong をインストールする必要があります。 Kong は、Windows、Linux、Docker などのさまざまなプラットフォームで実行できます。ここでは、例として Linux に Kong をインストールします。
yum を使用して Kong をインストールします:
$ echo '[bintray--kong-kong-rpm] name=bintray--kong-kong-rpm baseurl=https://kong.bintray.com/kong-community-edition-rpm/centos/$releasever/$basearch/ gpgcheck=0 repo_gpgcheck=0 enabled=1' | sudo tee /etc/yum.repos.d/bintray-kong-kong-rpm.repo $ sudo yum install -y kong
インストールが完了したら、 kong を実行して Kong サービスを開始します。
- API の作成
Beego に API を実装し、Kong に登録して外部からアクセスできる API にします。
Beego での API の実装は比較的簡単なので、ここではあまり紹介しません。 Beego では Kong の Admin API を使用する必要があるため、Kong の公式 Go クライアント kong-go-sdk をインストールする必要があることに注意してください。
$ go get github.com/Kong/go-kong/kong
API を作成する前に、以下に示すように Kong Admin API のクライアント オブジェクトが必要です:
import "github.com/Kong/go-kong/kong" const KongAdminURL = "http://localhost:8001" func NewKongClient() (*kong.Client, error) { return kong.NewClient(kong.String(KongAdminURL)) }
次に、コードを通じて API を登録できます。以下は簡単な例です:
func RegisterAPI(name, upstreamURL, requestHost, stripPath string) error { kongClient, err := NewKongClient() if err != nil { return fmt.Errorf("create kong client error: %v", err) } targetURL, err := url.Parse(upstreamURL) if err != nil { return fmt.Errorf("parse target url error: %v", err) } api := &kong.API{ Name: kong.String(name), Uris: kong.StringSlice("/" + name), UpstreamURL: kong.String(targetURL.String()), RequestHost: kong.String(requestHost), StripUri: kong.Bool(true), StripPath: kong.Bool(stripPath), } _, err = kongClient.APIs().Create(kongContext.Background(), api) if err != nil { return fmt.Errorf("register api to kong error: %v", err) } return nil }
上記のコードでは、最初に Kong Admin API のクライアント オブジェクトを作成し、次に kong.API
を使用して次のような API オブジェクトを作成します。 API 名、API に対応するアップストリーム URL、要求されたドメイン名、URI 削除を有効にするかどうか、URI トランケーションを有効にするかどうか、およびその他のオプションとして。最後に、Kong Admin API のクライアントを使用して API を作成します。
次に、Kong を構成し、プラグインとルートを追加してリクエストと応答の処理を指定する必要があります。
- Kong の構成
Kong は、リクエストとレスポンスに対してより高度な処理を実行できるようにする多くのプラグインをサポートしています。一般的に使用されるプラグインには、rate-limiting
、key-auth
、oauth2
などが含まれます。ここでは、rate-limiting
プラグインを使用して API のアクセス速度を制限します。
func AddPlugin(apiName string) error { kongClient, err := NewKongClient() if err != nil { return fmt.Errorf("create kong client error: %v", err) } api, err := kongClient.APIs().Get(kongContext.Background(), &apiName) if err != nil { return fmt.Errorf("get api error: %v", err) } plugin := &kong.RateLimiting{ Name: kong.String("rate-limiting"), ConsumerID: nil, Limit: kong.Int(10), Policy: kong.String("local"), } _, err = kongClient.Plugins().Create(kongContext.Background(), &kong.Plugin{ APIID: api.ID, Name: plugin.Name, Config: kong.Configuration{ kong.String("consumer_id"): plugin.ConsumerID, kong.String("limit"): plugin.Limit, kong.String("policy"): plugin.Policy, }, }) if err != nil { return fmt.Errorf("add rate-limiting plugin error: %v", err) } return nil } func AddRoute(apiName string) error { kongClient, err := NewKongClient() if err != nil { return fmt.Errorf("create kong client error: %v", err) } route := &kong.Route{ Name: kong.String(apiName), Paths: kong.StringSlice(fmt.Sprintf("/%s", apiName)), StripPath: kong.Bool(true), PreserveHost: kong.Bool(false), RegexPriority: kong.Int(0), Service: &kong.Service{ ID: kong.String(apiName), }, } _, err = kongClient.Routes().Create(kongContext.Background(), route) if err != nil { return fmt.Errorf("add route error: %v", err) } return nil }
上記のコードでは、チェーン呼び出しを使用して Kong のプラグインとルーティングを実装しています。
デモンストレーションの便宜上、電流制限プラグインのみを追加しました。 CreateRateLimiting 関数を実行することにより、Kong ゲートウェイに「rate-limiting」という名前のプラグインを作成し、それを「api-name」という名前の API に適用します。コードでは、10 は同時リクエスト数の制限を表します。
メソッドを実行するときに API の名前を渡す必要があります。まず、API 名を使用してゲートウェイに API を作成する必要があります。 RegisterAPI 関数を呼び出して、Beego アプリケーションに実装した API を Kong ゲートウェイに登録します。
AddPlugin 関数と AddRoute 関数を実行すると、API が Kong ゲートウェイに登録されました。
ここでは、Beego アプリケーションの Kong API ゲートウェイに API を直接登録する方法を使用します。実際、Kong は、構成ファイルまたはその他の方法を使用して、Kong Manager または Kong ダッシュボードを通じて API を登録することもサポートしています。 。ただし、これらの方法では、Kong API ゲートウェイのバックグラウンドで手動で操作する必要があり、面倒で時間がかかります。
最後に、Kong の API ゲートウェイを介して Beego に実装した API にアクセスするだけです。テストには Postman またはその他の REST クライアントを使用できます。
- 要約:
この記事では、API の登録、プラグインの追加、ルートの指定など、API ゲートウェイの管理に Kong を使用する方法を紹介しました。 Kong を API ゲートウェイとして使用すると、より柔軟、効率的、安全な API 管理と監視を実現できます。
以上がBeego での API ゲートウェイ管理に Kong を使用するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









NginxProxyManager を使用して API ゲートウェイの認証と認可を実装することは、最新のインターネット アプリケーション開発の重要な部分です。API ゲートウェイはインターフェイス呼び出しを提供しますが、インターフェイスのセキュリティも確保する必要があります。中でも認証と認可はAPIゲートウェイに欠かせない機能であり、リクエスタの本人確認やアクセス権の付与に使用されます。この記事では、NginxProxyManager を使用して API ゲートウェイの認証と認可を実装する方法を紹介し、具体的なコード例を示します。 1. とは

最新のインターネット アーキテクチャでは、API ゲートウェイが重要なコンポーネントとなっており、エンタープライズおよびクラウド コンピューティングのシナリオで広く使用されています。 API ゲートウェイの主な機能は、複数のマイクロサービス システムの API インターフェイスを均一に管理および分散し、アクセス制御とセキュリティ保護を提供することです。また、API ドキュメントの管理、監視、ロギングも実行できます。 API ゲートウェイのセキュリティとスケーラビリティをより確実に確保するために、いくつかのアクセス制御、認証および認可メカニズムも API ゲートウェイに追加されました。このようなメカニズムにより、ユーザーとサービスを確実に保護できます。

クラウド コンピューティングとマイクロサービスの台頭により、アプリケーションの複雑さは増大しています。したがって、監視と診断は重要な開発タスクの 1 つになります。この点に関して、Prometheus と Grafana は、開発者がアプリケーションをより適切に監視および分析できるようにする 2 つの人気のあるオープンソース監視および視覚化ツールです。この記事では、Prometheus と Grafana を使用して、Beego フレームワークに監視と警報を実装する方法を説明します。 1. はじめに Beego は、オープンソースの高速開発 Web アプリケーションです。

インターネットの急速な発展に伴い、Web アプリケーションの使用がますます一般的になり、Web アプリケーションの使用状況をどのように監視および分析するかが開発者や Web サイト運営者の焦点になっています。 Google Analytics は、Web サイト訪問者の行動を追跡および分析できる強力な Web サイト分析ツールです。この記事では、Beego で Google Analytics を使用して Web サイトのデータを収集する方法を紹介します。 1. Google Analytics アカウントを登録するには、まず次のことを行う必要があります。

今日の急速な技術発展の時代では、雨後の筍のようにプログラミング言語が出現しています。多くの注目を集めている言語の 1 つは Go 言語です。Go 言語は、そのシンプルさ、効率性、同時実行の安全性などの機能により多くの開発者に愛されています。 Go 言語は、多くの優れたオープンソース プロジェクトがある強力なエコシステムで知られています。この記事では、厳選された 5 つの Go 言語オープンソース プロジェクトを紹介し、読者を Go 言語オープンソース プロジェクトの世界へ導きます。 KubernetesKubernetes は、自動化されたオープンソースのコンテナ オーケストレーション エンジンです。

Beego フレームワークでは、エラー処理は非常に重要な部分です。アプリケーションに正しく完全なエラー処理メカニズムが備わっていないと、アプリケーションがクラッシュしたり、正しく実行されなくなる可能性があり、これはプロジェクトとユーザーの両方にとって重要です。非常に深刻な問題。 Beego フレームワークは、これらの問題を回避し、コードをより堅牢で保守しやすくするのに役立つ一連のメカニズムを提供します。この記事では、Beego フレームワークのエラー処理メカニズムを紹介し、それらがエラーの回避にどのように役立つかについて説明します。

インターネットの急速な発展に伴い、分散システムは多くの企業や組織のインフラストラクチャの 1 つになりました。分散システムが適切に機能するには、調整して管理する必要があります。この点で、ZooKeeper と Curator は使用する価値のある 2 つのツールです。 ZooKeeper は、クラスター内のノード間のステータスとデータを調整するのに役立つ、非常に人気のある分散調整サービスです。 Curator は ZooKeeper のカプセル化です

インターネットの急速な発展に伴い、ますます多くの企業がアプリケーションをクラウド プラットフォームに移行し始めています。 Docker と Kubernetes は、クラウド プラットフォームでのアプリケーションの展開と管理のための 2 つの非常に人気のある強力なツールになりました。 BeegoはGolangで開発されたWebフレームワークで、HTTPルーティング、MVC階層化、ロギング、構成管理、セッション管理などの豊富な機能を提供します。この記事では、Docker と Kub の使用方法について説明します。
