開発環境構築
ダッシュボードはmanager-apiとwebの2つのコンポーネントで構成されています。それぞれの開発環境を個別に構築する必要があります。
前提条件
開発を始める前に、依存関係をインストールしてください。
プロジェクトのクローン
$ git clone -b release/2.13 https://github.com/apache/apisix-dashboard.git開発環境起動手順
$ cd apisix-dashboardmanager-apiコンポーネント
api/conf/conf.yamlの設定を変更してください- ルートディレクトリで開発モードを起動
$ make api-run - 開発モードの停止
$ make api-stop
webコンポーネント
webディレクトリに移動$ cd ./webconfig/defaultSettings.tsのmanager-apiアドレスを変更serveUrlMap:{ dev: 'http://localhost:9000' }- 開発モード起動
$ 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.Item | label | form.itemLabel |
| Input | placeholder | input.placeholder |
| Button | caption | button |
フロントエンドE2Eテスト
Cypressを使用したテスト手順:
$ yarn cypress:open-dev # テストランナー起動 $ yarn cypress:open # ローカルAPI使用時バックエンドテスト
ローカル環境構築手順
- 必要サービス起動:
manager-api,apisix,etcd,upstream-node - 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全許可