CodeZine(コードジン)

特集ページ一覧

「アプリ開発あるある」を疑うことから始まった、API Clientコードの自動生成【デブスト2020】

【Session6】OpenAPI Generator による API Client コードの完全自動生成

  • LINEで送る
  • このエントリーをはてなブックマークに追加
2021/01/18 12:00

 APIを使う際に、「いつの間にか仕様が変わっている」「どこが変更になったのかがわからない」「開発した人に聞いても、どこを変更したのか把握していない」という経験をしたことのあるアプリ開発者は多い。このようなことが起こった際、自ら修正したり、運用でカバーしたりすることが一般的な方法であり、慣習とも言える。だが、その慣習を踏襲するのではなく、「他にもっと良い方法があるはず」と考えた。それが「OpenAPI Generator」を活用したAPI Clientコードの自動生成という方法である。

目次
株式会社ゆめみ マーケティングソリューション事業部 岡山 達哉
株式会社ゆめみ マーケティングソリューション事業部 岡山達哉氏

アプリ開発でAPIを使うときの「あるある」を解決したい

 ゆめみは2000年に「アイデアと技術をもって『夢』を実現し、社会に貢献できる新しいものを創りだすことを目標」に、モバイルソリューション事業を提供するため設立されたモバイルインターネットの老舗ベンチャーである。現在はBnB2C(BandBtoC)という法人向けのデジタルメディア・Webサービス・公式アプリの立ち上げと成長に関連した支援事業を行っている。具体的にはスマートフォン向けアプリやWebサービス、デジタルメディアの企画・開発・運用、およびUI/UX設計などを手がけている。

 今回、登壇した岡山達哉氏は、2019年11月にゆめみに入社し、Androidアプリの開発に従事しているエンジニアである。趣味は将棋とのことだが、個人でも、ほぼ毎日2時間ほど「Flutterを使っている開発している」と話すほど、開発が大好きなエンジニアだ。

 そんな岡山さんのキャリアは非常にユニーク。元々は公務員からスタートしており、「プログラムは趣味で書いていました」と明かす。公務員として働いているうちに、「エンジニアのほうが向いている」と思い、公務員を辞めて3カ月間勉強し、地元の小さな開発会社に入ったという。「入社当初は7人しかいなかったので、開発だけではなくいろんな経験を積むことができました」と岡山さん。Twitterを活用した転職活動をしたところ、ゆめみの片岡代表からDMをもらい、ゆめみへの転職が実現したという。

 岡山さんのセッションタイトルは「OpenAPI GeneratorによるAPI Clientコードの完全自動生成」。API Clientの自動生成に取り組んだきっかけは、開発者あるある話である。

 アプリ開発でAPIを使うときに、「いつの間にか仕様が変わっている」「仕様が変わったのはわかったが、どこが変更になったのかがわからない」「そもそも開発した人に聞いても、どこを変更したのか把握していない」という経験をした人は多いだろう。このようなことがあると、ついついAPIを開発した人を責めるような思いにとらわれてしまうこともある。

 たしかに「仕様変更したときはちゃんと言ってほしい」「どこを変更したかきちんと教えてほしい」と言うのは正論かもしれない。しかし、人のすることは完璧ではない。岡山さんは「人間はミスをする生き物なので、それを前提で作業のフローを組んだほうが良いと考えた」と言う。

 何か仕様変更をしたら、変更箇所をまとめて報告をするフローを作って、複数人でチェックするという、運用でカバーする方法がある。「だがこの方法を採用しても必ずしもミスがなくなるわけではありません。個人的にはやりたくないと思いました」と岡山さん。そもそもAPIの変更があったときに、アプリ開発側が修正するというのは気乗りしないし、面倒である。そこで「こういうときこそ、自動化だ」と考えたという。

 まずAPI変更の流れの整理に着手した。図を見ればわかるように、API変更の流れは「サーバー側の修正」→「修正箇所の連絡」→「クライアント側の修正」となる。「ここで自動化したいのは、修正箇所の連絡とクライアント側の修正の部分。サーバー側の修正は人間しかできないので、ここはそのままにしました」(岡山さん)

APIの変更の流れ
APIの変更の流れ

  • LINEで送る
  • このエントリーをはてなブックマークに追加

バックナンバー

連載:【デブスト2020】セッションレポート

著者プロフィール

  • CodeZine編集部(コードジンヘンシュウブ)

    CodeZineは、株式会社翔泳社が運営するソフトウェア開発者向けのWebメディアです。「デベロッパーの成長と課題解決に貢献するメディア」をコンセプトに、現場で役立つ最新情報を日々お届けします。

あなたにオススメ

All contents copyright © 2005-2021 Shoeisha Co., Ltd. All rights reserved. ver.1.5