-
Notifications
You must be signed in to change notification settings - Fork 0
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
(Dressca)Open API 仕様書の更新に追従する #1721
The head ref may contain hidden characters: "develop/admin/OpenAPI\u5B9A\u7FA9\u66F8\u66F4\u65B0\u306B\u4F34\u3046\u30D5\u30ED\u30F3\u30C8\u30A8\u30F3\u30C9\u306E\u30B3\u30FC\u30C9\u6700\u65B0\u5316"
(Dressca)Open API 仕様書の更新に追従する #1721
Conversation
@KentaHizume @tsuna-can-se |
@tsuna-can-se @1nu1taichi (例)
[ProducesResponseType(StatusCodes.Status200OK, Type = typeof(PagedList<GetCatalogItemResponse>))] |
@KentaHizume 例えばCatalogItemControllerの処理で扱うリソースであるCatalogItemはDtoの中に置いてOKです。 |
@tsuna-can-se
public class GetCatalogItemsResponse
{
public required PagedList<CatalogItem> PagedListOfCatalogItem { get; set; }
}
[ProducesResponseType(StatusCodes.Status200OK, Type = typeof(GetCatalogItemsResponse))] |
@KentaHizume |
@tsuna-can-se
public class CatalogItemMapper : IObjectMapper<ApplicationCore.Catalog.CatalogItem, GetCatalogItemResponse> |
@tsuna-can-se 他の単純に1個取得する場合に、 public class GetCatalogItemResponse
{
public required CatalogItem CatalogItem { get; set; };
} |
@KentaHizume |
@tsuna-can-se @1nu1taichi 下記の通り issueを作成しております。 |
@KentaHizume |
* Dressca管理アプリ(バックエンド)の作成 (#1580) * web-csrのbackendにweb-adminプロジェクトとweb-consumerプロジェクトを追加 * web-adminとweb-consumerの共有部分をwebに移動 * web-adminから不要なファイルを削除 * webにcontrolleradviceのテストメソッドを追加 * カタログアイテムのCRUD処理を行うリポジトリインターフェースと実装クラスの追記 * MyBatisを用いたCRUD処理を自動生成されたコードに変更 * ロガーや認証認可を除いたCRUD処理の実装 * APIの定義に合わせてCRUD処理と関連する箇所を修正 * 認証・認可関連のクラスを実装 * 認可をPreAuthorizeアノテーションで管理するように変更 * 開発環境でのみダミーユーザが注入されるように変更 * ユーザのセッション情報を管理するクラスを追加 * ログ出力の中身の詰め込みとそれに伴う例外クラスの追加 * 楽観同時実行制御用のrow_versionカラムをcatalog_itemsに追加し、myBatis generatorで生成したクラスを追加 * 認証認可に関するアノテーションの位置と種類を変更 * 楽観同時実行制御の実装 * コメントアウトやファイルの場所の変更 * 楽観ロックエラーの実装とコントローラのAPI定義の修正 * CatalogManagementApplicationServiceの単体テストの追加 * controllerAdviceのフォルダ構成の変更 * webをadminとconsumerに分割した際に生じた差分(主にCORS構成)を修正 * 権限エラーと楽観ロックエラーのメッセージをプロパティファイルに定義 * 例外ハンドリングにアノテーションによる認証エラーと認可エラーを追加 * ログレベルを適切なものに変更 * 更新用のコマンドオブジェクトを削除 * フォーマットのルールを他メソッドに合うよう修正 * api定義の切り分け * CRUD処理をドメインサービスに集約 * 更新処理をMyBatis Generatorで生成されたプログラムを用いたものに変更 * h2データベースの起動設定の変更 * launch.jsonにadminとconsumerを追記 * h2サーバーの設定を行うコンポーネントのDIをnull許容に変更する * 単体で使用しないためlaunch.jsonからwebを削除 * 単体テストのメソッド名の命名を統一 * プログラムの過不足の適用、ドメインサービスの更新処理のメソッド名を変更 * ユーザのセッション情報の実装クラスのメソッドを適切なものに修正 * DummyUserInjectionFilterのJavaDocコメントを追記 * 楽観同時実行制御のバージョンカラムの型をDBではTIMESTAMP型、JavaではLocalDateTimeに変更 * MyBatis Generatorで生成したプログラムを楽観同時実行制御対応させるためのタスクを追加 * 自動生成したマッパーを楽観ロック対応させるタスクにおいて列やディレクトリの柔軟性を向上 * h2サーバー起動用のクラスをインフラから削除し、adminとconsumerに新規追加 * CatalogManagementApplicationServiceとCatalogApplicationServiceに統合 * myBatisGeneratorConfigの誤字を訂正 * 楽観ロックエラーと権限エラーを共通エラーハンドラでキャッチするように変更 * H2ServerConfigをH2ServerLauncherに変更 * CatalogApplicationServiceのgetCatalogItemsメソッドの処理をprivateの共通処理からadminとconsumerで直接記述するように変更 * カタログアイテムの取得処理に認可チェックを追加 * コントローラの認可チェックを全てのアクションメソッドに付与するよう変更し、併せてAPI定義も修正 * APIのdescriptionの更新に伴うAPI仕様書の更新 * PagedListOfCatalogItemResponseのフィールドに総ページ数、前ページの有無、後ページの有無を追加 (#1610) * カタログアイテムのdtoの引数を修正 * アプリケーションサービスの更新メソッドの引数を修正 * カタログアイテムのgetのdtoのフィールドに行バージョンを追加 * API仕様の軽微な修正 * javadocの誤記を修正 * PagedListOfCatalogItemResponseのフィールドをMarisに合わせて修正 * カタログアイテムの削除処理と更新処理のアクションメソッドの引数を修正 * PagedListOfCatalogItemResponseのtotalPagesの計算を商と余りを用いて行うよう変更 * 管理アプリ(バックエンド)を策定したAPI仕様に沿って修正 (#1594) * カタログアイテムのdtoの引数を修正 * アプリケーションサービスの更新メソッドの引数を修正 * カタログアイテムのgetのdtoのフィールドに行バージョンを追加 * API仕様の軽微な修正 * javadocの誤記を修正 * 楽観ロック対応のタスクの不要な記述を削除 * ユーザロールを複数返すように変更 * DTOクラス群の命名を変更 * カタログアイテムを削除に楽観同時実行制御を実装 * 不足しているAPIレスポンスを追加 * ユーザーロールを定数で管理 * PagedListOfCatalogItemResponseの変更分をマージ * adminのAPI仕様書を更新 * adminのPagedListOfCatalogItemResponseをPagedListOfGetCatalogItemResponseに変更 * adminとconsumerのdependabot version updateの設定を追加 * 指摘事項への対応 * Dresscaに管理アプリ(フロントエンド)を追加する (#1582) * フロントエンドアプリケーションのソース一式をmainにマージ * adminワークスペースを追加 * admin用のnpmスクリプトをルートプロジェクトに追加 prodビルド用のコマンドがワークスペースになかったため、追加 * admin用のCIワークフローを追加 * #1236 を反映 * openapi-generatorの自動生成コードを最新化 * [email protected]にアップデート * カタログアイテムのdtoの引数を修正 * アプリケーションサービスの更新メソッドの引数を修正 * カタログアイテムのgetのdtoのフィールドに行バージョンを追加 * API仕様の軽微な修正 * javadocの誤記を修正 * Revert "[email protected]にアップデート" This reverts commit 389549b. * Revert "openapi-generatorの自動生成コードを最新化" This reverts commit e001e14. * OpenAPI仕様書のパスを正しいものに修正 * クライアントコードを再生成 * PagedListOfCatalogItemResponseのフィールドをMarisに合わせて修正 * mockの不完全な実装部分を削除 * devモードのエンドポイントのURLを修正 * vitestのmswの設定についてデバッグに使用していたものを削除 * カタログアイテムの参照、追加、更新、削除について自動テストを実装 * adminのコードを新しい仕様書に合わせて自動生成 * コードにコメントを追加。 * 不足しているコメントを追加。 * コメントを改善 * Adminについてopenapi-generatorのバージョンアップを確認する * リダイレクト漏れを修正 わかりにくい箇所を修正 * [email protected]にアップデート * Promise.thenで非同期処理を待っていた箇所を、awaitで待つように修正 * 不適当なメソッド命名を修正 * カテゴリとブランドの取得をサービスクラスに委譲するリファクタを実施 --------- Co-authored-by: yoshidakenji <[email protected]> * アプリケーションサービス内の存在チェックをドメインサービスに移動する (#1720) * カタログアイテムのdtoの引数を修正 * アプリケーションサービスの更新メソッドの引数を修正 * カタログアイテムのgetのdtoのフィールドに行バージョンを追加 * API仕様の軽微な修正 * javadocの誤記を修正 * 楽観ロック対応のタスクの不要な記述を削除 * ユーザロールを複数返すように変更 * DTOクラス群の命名を変更 * カタログアイテムを削除に楽観同時実行制御を実装 * 不足しているAPIレスポンスを追加 * ユーザーロールを定数で管理 * PagedListOfCatalogItemResponseの変更分をマージ * adminのAPI仕様書を更新 * adminのPagedListOfCatalogItemResponseをPagedListOfGetCatalogItemResponseに変更 * adminとconsumerのdependabot version updateの設定を追加 * アプリケーションサービスの存在チェックをドメインサービスに移動 * ドメインサービスのUTの追加 * カタログアイテムの追加処理にブランドとカテゴリの存在チェックを追加 * アプリケーションサービスのUTでアクション内でリテラルを使用しないように変更 * (Dressca)Open API 仕様書の更新に追従する (#1721) * OpenAPI 仕様書の相対パスを修正 * Consumer の API クライアントを再生成 * consumerのmockをmaia-maris間で共通化 * Admin の API クライアントを再生成 * Adminのフロントエンドのコードを最新と同期 * dependabot.ymlの不要なバージョン更新検索を削除 * 登録用のカタログアイテムを作成するメソッドを追加 * WebApplicationTestのcontextLoadsクラスにDisplayNameを追記 * DisplayNameのimport文を追記 * web-adminとweb-consumerの不要なテストクラスを削除 * モックのHTTPステータスコードについてaxiosから提供されるEnumを使用するように修正 * フロントエンドの自動テストスイートを改善して[email protected]にアップデート (AlesInfiny/maris#2169 を反映) * APIクライアントのステータスコードをEnumに修正 * 自動生成された不要なREADMEファイルを削除 * CatalogApplicationServiceのカタログアイテムの一覧取得メソッドの命名をbyからforに変更 * 例外のmessageの抜けを修正 * samples/web-csr/dressca-frontend/consumer/src/api-client/index.ts の競合を解決 * package-lock.jsonの競合を解決 * Revert "package-lock.jsonの競合を解決" This reverts commit 51a4946. * Revert "samples/web-csr/dressca-frontend/consumer/src/api-client/index.ts の競合を解決" This reverts commit bfaf778. * マージしたい対象をマージ元のブランチからcheckout * 競合を解決 * 競合を解決 * Revert "競合を解決" This reverts commit 393ffb1. * Revert "競合を解決" This reverts commit 6366b27. * Revert "マージしたい対象をマージ元のブランチからcheckout" This reverts commit 501fb96. * Adminでは使っていないため、すべてのカテゴリ・ブランドを表すレコードを追加する処理を削除。 フォームレベルバリデーションのスキーマ定義について、カタログアイテムのnameとdescriptionをそれぞれitemNameとitemDescriptionにリネーム。 * コメントの誤りを修正 * メッセージ管理方針の変更をadminに取り込み * API クライアントの設定ファイルの競合箇所を main から checkout して再修正 * 一度 main のpackage-lock.json をcheckoutして戻します。 * admin 分のパッケージをpackage-lock.jsonに記録します * ログメッセージの誤記を修正 * Javaファイルの不要な空行を削除 * AssetsControllerの不要な空行を削除 * ログ出力のフォーマットが崩れている部分の修正 * 管理アプリにconsumerの変更を反映 * 管理アプリのフロントエンドのCIについて明示的に権限を付与するように修正 --------- Co-authored-by: kenjiyoshid-a <[email protected]>
この Pull request で実施したこと
Consumer
catalog.api.mock.ts
の実装をMarisと共通化しました。Admin
rowVersion
をクエリパラメータで引き渡すように修正しました。ConflictError
をcatchしてハンドリングするように修正しました。この Pull request では実施していないこと
なし
Issues や Discussions 、関連する Web サイトなどへのリンク
上述の通りです。