Edited at

銀行マスタ検索API作成に関して


銀行マスタ検索API作成に関して


フロントで外部APIを利用する場合:

●銀行 支店 マスタで使えそうなライブラリってあるの?

スクリーンショット 2019-11-08 16.38.45.png

上記で割りとよさそうな④を利用しようと思ったが、金融機関の候補例が20までが上限だったり色々デメリットもある。

上記で⑥を利用しようと思ったが、上記④のデメリットもカバーできるが個人運営というのが唯一引っかかる。

フロントで外部APIを利用するのは、急に使えなくなるといったことがどれくらいあるのか?

などの懸念もあり結果的にバックエンドで銀行マスタAPIを実装してフロントに渡す結論になった。


バックエンドでAPIを実装する場合:

下記のサイトからマスタのCSVをダウンロードし、CSVをDBに取込する。

http://ykaku.com/ginkokensaku/index.php

上記サイトの『<全データダウンロード・zip形式>リンクよりzipファイルをダウンロード後、解凍しCSVをDBに取込する。

上記のサイトのデータは更新タイミングはルールがなく、

http://ykaku.com/ginkokensaku/ment.html

1ヶ月に3回の時もあれば、更新がない月もあるので、更新周期(月1回)と決めて自動更新を行うようにバッチを実装する。


銀行マスタ検索用API実装

●検索画面イメージ

スクリーンショット 2019-11-08 16.58.16.png

●APIのroot:

メイン銀行API:

Route::any('/user/bank/{keyWord}', 'User\ApiBankController@getBank');
銀行API:
Route::any('/user/main/bank', 'User\ApiBankController@getMainBank');
支店検索API:
Route::any('/user/branch/{bankCode}/{keyWord}', 'User\ApiBankController@getBranch');

●フロントに渡すAPI(例:先頭が「み」の銀行のみ)

検索時はPGで平仮名をカタカタに変換してからDBのカタカタを検索対象にして検索を行う。

①銀行検索用

スクリーンショット 2019-11-08 17.04.43.png

②支店検索用

スクリーンショット 2019-11-08 17.06.08.png


参考サイト

http://ykaku.com/ginkokensaku/index.php

https://qiita.com/yuki_chrono/items/f03ce8b4036390927d86

https://bankcode-api.appspot.com/

https://bank.teraren.com/