kitslog

何かを書く

いま書いてるOSS `edinet-go` の紹介

いくつか個人開発、みたいな文脈でプロジェクトをやってきたんだけど、大体モチベーションがいつの間にか霧散してる。

機能が実装されていなかったら、Contributeしてくれればいいんだ。責任も何もない開発っていうのは楽です。そういうレベルの開発をしています。まぁそういうもんだと思ってます。

今書いてるコードは、edinet-go ってやつです。リポジトリ自体はとても昔に作っていたんだけど、モチベが霧散して途中で開発しなくなってたやつです。

edinetについてはあとで触れるけど結構前にedinet apiというのがv2になってなんかほんの少し変わったので久々に触ってみようかなという思いで開発を再開しました。

github.com

edinet-goは何か軽く触れておきます。

EDINETは、金融商品取引法上で開示用電子情報処理組織と呼ばれる、内閣府の使用するホストコンピューター・提出会社の使用するコンピューター・金融商品取引所のコンピューターを結んだ、同法に基づく開示文書に関する電子情報開示システムである。

いわゆるEDINETというシステムがあって、そのシステムにはEDINET APIというのが提供されているんだけど、使い勝手がまぁ微妙です。

開示文書をとある形式で取得したりするんだけど、取得するためのドキュメントIDは一覧から一度取ってこないといけないが、そしてそのドキュメントIDって特定の日付で取得した一覧からしか得られないのです。

EDINET APIの基本的な利用方法はこんな感じ

出典:金融庁 EDINET API仕様書 (version 2)

簡単に思いつくニーズとして XXXX という企業名の有価証券報告書XBRLの形式で取得したい。といったニーズには現状のEDINET APIで実現させようとするとかなりの手間になるわけです。

これを実際にEDINET APIのみでやろうとすると、日付を少しずつ変えて(もしくは1年間とか長い期間の日付をリスト化して)APIをめちゃくちゃ叩いて企業として持つユニークなEDINET CODE(や法人番号)が XXXX なデータでフィルタリングして、有価証券報告書以外の文書IDを省いて、有価証券報告書の文書IDを抜き出して、別のエンドポイントにアクセスして有価証券報告書をダウンロードしろ、と言ってるわけです。正気か?誰に聞いて作ったんだこのシステム。

ということでこのEDINET APIをWrapしたAPIを作ってしまおうというのが最初のモチベです。 EDINET-APIをWrapする上では、基本機能としてEDINET-APIの使用感はRAW機能として残しつつ、 取得周りのニーズを満たせるようにしていこうかなというところです。いずれ自社に買い取ってもらうんだ、このOSS。という欲望も抱えてます。

取得されたデータ自体の活用や分析はスコープ外になるのでEDINETで検索してきてこの記事がヒットしてしまっていたら申し訳ないけど諦めてお帰りください