APISIXダッシュボード開発ガイドとテスト方法

開発環境構築

ダッシュボードはmanager-apiwebの2つのコンポーネントで構成されています。それぞれの開発環境を個別に構築する必要があります。

前提条件

開発を始める前に、依存関係をインストールしてください。

プロジェクトのクローン

$ git clone -b release/2.13 https://github.com/apache/apisix-dashboard.git

開発環境起動手順

$ cd apisix-dashboard

manager-apiコンポーネント

  1. api/conf/conf.yamlの設定を変更してください
  2. ルートディレクトリで開発モードを起動
    $ make api-run
  3. 開発モードの停止
    $ make api-stop

webコンポーネント

  1. webディレクトリに移動
    $ cd ./web
  2. config/defaultSettings.tsmanager-apiアドレスを変更
    serveUrlMap:{ dev: 'http://localhost:9000' }
  3. 開発モード起動
    $ yarn install $ yarn start

国際化(i18n)ガイド

Apache APISIX Dashboardは@umijs/plugin-localeを使用して国際化を実装しています。以下のルールに従ってください。

言語ファイル配置ルール

  • グローバル言語ファイル:src/locales
  • ページ単位の言語ファイル:src/pages/$PAGE/locales
  • コンポーネント単位の言語ファイル:src/components/$COMPONENT/locales

キー命名規則

[basicModule].[moduleName].[elementName][...desc]の形式を使用します

  • 例:app.pwa.message.offline
  • 汎用キー:component.global.confirm

要素プロパティ対応表

要素プロパティロケールサブキー
Form.Itemlabelform.itemLabel
Inputplaceholderinput.placeholder
Buttoncaptionbutton

フロントエンドE2Eテスト

Cypressを使用したテスト手順:

$ yarn cypress:open-dev # テストランナー起動 $ yarn cypress:open # ローカルAPI使用時

バックエンドテスト

ローカル環境構築手順

  1. 必要サービス起動:manager-api, apisix, etcd, upstream-node
  2. upstream-nodeコンテナ起動
    docker run -d --name upstream -v /$(pwd)/api/test/docker/upstream.conf:/etc/nginx/conf.d/default.conf:ro -p 80:80 -p 1980-1984:1980-1984 johz/upstream:v2.0

Docker Compose利用

$ cd api/test/docker $ docker-compose up -d # サービス起動 $ docker-compose down -v # クリーンアップ

テスト実行方法

  • E2Eテスト全体実行
    $ cd api/test/e2e $ go test -v
  • Ginkgoテスト実行
    $ cd api/test/e2enew $ ginkgo -r

テストコード作成ガイド

HttpTestCase構造体を使用したテスト例:

type HttpTestCase struct { Desc string Object *httpexpect.Expect Method string Path string }

FAQ

ETCDバージョン互換性

Dashboard v2.0以降はETCD v3 APIを使用。APISIX 1.5以下はETCD v2を使用するため注意が必要です。

プラグイン表示問題

カスタムプラグイン作成後は、APISIXのコントロールAPIからスキーマをエクスポートしてダッシュボードに反映してください:

curl 127.0.0.1:9090/v1/schema > schema.json

全IPアクセス許可

conf/conf.yamlで以下を設定:

conf: allow_list: - 0.0.0.0/0 # IPv4全許可 - ::/0 # IPv6全許可

タグ: APISIX dashboard i18n E2Eテスト cypress

7月25日 23:22 投稿