見出し画像

【画像処理API】エンドポイントおよびクラス設計

API開発における画像処理の機能実装については、API設計の考え方にならってオブジェクトを基準として(オブジェクト指向的に)設計していく。

下記の点は、API開発にかかわらず、オブジェクト単位での実装一般に関わるように思う。

どう使いたいのかは、不完全な実装でも使ってみてからの方がわかりやすい。

オブジェクト指向とテスト駆動開発を知って変わってきたこと(もろ引用です)

・関数にするかクラスを利用するか
選択肢:ひとつの巨大な関数での実装(設定と動作)
実装が簡単。しかし、同じ設定を繰り返す分の無駄を生じてしまう。
選択肢:クラスとそのメソッドによる実装(設定のメソッドと動作のメソッド)
少しばかり実装の仕方を考える。設定を行う部分と動作を分離するので、同じ設定を何度も繰り返す無駄がなくなる。
利用する関数の中で、初期化と設定のメソッドの記述する位置について考えておくこと。
・入出力
ある機能がファイルインタフェースなのか、画像キャプチャのインタフェースなのか。
別々の実装にしない。
アルゴリズムのコアの部分はDRY原則を満たすように実装して、コードの乖離の問題を持ち込まない。

参考1:画像認識技術とオブジェクト指向とテスト駆動開発

個人的な実装についての備忘録

とりあえず、画像の状態(管理)に対応するImagesクラス、/imagesエンドポイントのオブジェクトを想定

処理のを司るクラス、エンドポイントとなるImageProcクラス、/filtersエンドポイントのオブジェクトを想定

基本は、画像についてはID(画像ID、機能ID)で管理、してフロント側でもIDのみを保持する仕様

imagesのエンドポイントに対して、リクエストを投げるとIDとフォーマットのパラメータでレスポンスを制御する流れ


この記事が気に入ったらサポートをしてみませんか?