APIの設計思想について

作成者:APIteam1 作成日:

三菱UFJ銀行 API事務局です。
第2回目は「APIの設計思想」をテーマに ULTRA パワープラグコード シビックフェリオ 4WD EH1 シリコン 品番:2427-**、当行APIの考え方を紹介します。

システムを開発する上で、クラスなどのモジュール設計(モジュールの単位や関係性などの設計)は欠かせません。当行APIにおいても、どのような粒度で開発するかを様々な観点で検討しました。
今回は 【ブレンボ】ブレーキパッド MITSUBISHI パジェロ [ V24WG V44W V44WG ][ 91/10~93/7 ][ REAR ] 【 レッド ABS付 】、APIの粒度とそれを決定した経緯、APIのURI(エンドポイント)設計の考え方について、銀行APIとして工夫した点を交えて紹介します。

1. 当行APIで提供しているサービスの粒度(単位)

当行のAPIは、インターネットバンキング(三菱UFJダイレクト、BizSTATION)で提供している複数のサービスから選んだ一部のサービスをAPIとして提供しています。
各APIでは XAM ザム PREMIUMシリーズ リアスプロケット 丁数:51 1340 XLH -99 SPORTSTERファミリー、

NARDI ステアリング トヨタ キャミ J100/120系 11/5~ FET BOSS KIT(FET ボスキット)・NARDI(ナルディ) ステアリングセット ステアリングボス BOSS〔FB707〕/ステアリング〔N121〕 超売れ筋商品

[ACRE] アクレ ブレーキパッド ZZC フロント用 セドリック / グロリア UY31 CUY31 KUY31 87/6~98/6 2800cc ABS無車 ※代引不可 ※北海道・沖縄・離島は送料2160円;RECARO インターナショナル シートレール パルサー N14(H2/8~) 左座席用 レカロ ニッサン N005L;NARDI ステアリング スズキ ワゴンR MH21/22 15/9~20/8 FET BOSS KIT(FET ボスキット)・NARDI(ナルディ) ステアリングセット ステアリングボス BOSS〔FB414〕/ステアリング〔N802〕

NARDI ステアリング トヨタ キャミ J100/120系 11/5~ FET BOSS KIT(FET ボスキット)・NARDI(ナルディ) ステアリングセット ステアリングボス BOSS〔FB707〕/ステアリング〔N121〕;17インチ サマータイヤ セット【適応車種:86(ZN6)】WORK エモーション M8R ホワイト 7.0Jx17ADVAN ネオバAD08R 215/45R17;NC700S(12~13年) スクリーン スポーツ MRA(エムアールエー);205/70R15 96H DUNLOP ダンロップ GRANDTREK PT3 グラントレック PT3 G.speed P-04 ジースピード P-04 サマータイヤホイール4本セット;【アクレ/acre】リアルレーシング [リア用] 左右セット 【競技用品】 ブレーキパッド REAL-RACING スカイライン V35 などにお勧め 品番:603

[ホイール1本(単品)] CRIMSON / CLUB LINEA L747D (BRC) 20インチ×10.5J PCD:114.3 穴数:5 インセット:17, SP武川(タケガワ) コーンオーバルマフラー (14-04-0055), RSR ストラットタワーバー スープラ JZA70 2/9~5/6 リア用, BLITZ コアタイプエアクリーナー SUS POWER LM-RED ニッサン グロリア 91/06-95/06 PAY32 VG30DET 59018, AUTO COUTURE H16-18 UCF30 セルシオ Complete Line 3UNIT / FB.SS.RB 塗装済み テクニウム その他電装パーツ TECHNIUM 純正モデル レギュレータ HONDA用(Tecnium OEM Model Regulator Honda【ヨーロッパ直輸入品】)

、例えば「口座API」の場合、お客さまの残高照会、入出金明細照会などを取得することができます。インターネットバンキングで提供しているサービスを踏まえたAPIの粒度となっています。

2. APIの設計方法とURI(エンドポイント)の考え方

NARDI ステアリング トヨタ BKFP キャミ AT2 J100/120系 11/5~ FET BOSS KIT(FET ボスキット)・NARDI(ナルディ) ステアリングセット ステアリングボス BOSS〔FB707〕/ステアリング〔N121〕

APIの設計にあたり、使い勝手を重視しRESTfulでシンプルな設計を行うという方針のもと、開発を行いました。APIの設計では、オブジェクト指向の考え方を採用しており、API化するサービスをクラス、プロパティ(フィールド)、メソッドに落とし込んで、設計を進めました。例えば、残高照会や入出金明細照会を行う口座APIの場合、「口座」というクラスに対して、「残高情報」、「入出金明細情報」といったプロパティが存在します。これらの情報(プロパティ)を取得するために 18インチ サマータイヤ セット【適応車種:アベンシス(270系)】WEDS ウェッズスポーツ SA-77R フォースブラッククリア 7.5Jx18ヨコハマ Sdrive ES03 215/45R18、HTTPメソッドのGET/POSTを使用して、APIを呼び出すシンプルな設計としました。
また、API数を不必要に増やさないために、1つのAPI(=リソース)に対し、複数のオペレーションが含まれる作りとしています。例えば、法人APIの一つである「口座API」には「口座残高照会」、「入出金明細照会」、「振込入金明細照会」の3つのオペレーションが含まれます。

(2) URI(エンドポイント)の考え方

APIのリクエスト先であるURI(エンドポイント)には、APIのバージョン、API名称、リクエストパラメータなどが含まれています。URIをHTTP(GET/POST)で呼び出すことで、APIの応答を実現しています。上記のオブジェクト指向の考え方を踏まえた、URIとしています。 URIの構造など、くわしくはAPI仕様を当開発者ポータルに記載しています。(画面上部の メニュー>API をクリック)

3. 開発で工夫した点

当行APIの特徴は前述したとおりですが、ここでは実際のシステム開発時における工夫した点を紹介します。
プロジェクトの初期段階では 、検討中のAPIが実際に使えるものなのか不明確だったため、ベータ版として当行APIの利用が見込まれる事業者の皆さまに仕様やテスト環境を提供し、フィードバックを頂くプロセスを経て、最終的に公開するAPIのURIやオブジェクトの設計を進めました。
例えば、「入出金情報は履歴のサイズ(明細数)が大きくなるため、工夫が必要ではないか」という声を受け、1件のリクエストに対して、履歴件数の上限を設けることにしました。一定の履歴件数を超える場合は、「次の明細開始番号」を返却し、次のAPIリクエスト時に開始番号を指定する設計としました。その他にも、テストデータやエラーレスポンスに関するご要望に対する取り込みも行っています。
また、2017年7月に全国銀行協会にて纏められた「オープンAPIのあり方に関する検討会報告書」の仕様標準にも準拠する形としています。

以上、当行APIの粒度や考え方について、紹介しました。
当開発者ポータルでは ZEES セルシオ UCF30/31 ZEES アリッシュ 後期 アリッシュX スタンダード 左右出し、テスト用のAPIを実際にお試しいただけます。(画面上部の メニュー>API をクリック)APIの仕様やテスト用データも掲載しているので、ぜひご活用ください!
(APIを提供する上での各システムの役割は、ブログ記事「 APIに関連するシステムの役割について」をご参照ください)

タグ: 

最新記事

電子決済等代行業登録企業に聞く!電代業登録への道のり
APIを使った安全・安心なサービスを提供するために必要なこと
会計クラウドサービスを幅広く展開、

NARDI ステアリング トヨタ キャミ J100/120系 11/5~ FET BOSS KIT(FET ボスキット)・NARDI(ナルディ) ステアリングセット ステアリングボス BOSS〔FB707〕/ステアリング〔N121〕

、freee様に聞くAPI活用法とは?