APIとは?
「API」とは、「Application Programming Interface」の頭文字のこと
- 英文字だけの意味だと、『アプリケーション・プログラミング・インターフェイス』で、大雑把に言うと『アプリケーションをプログラミングするためのインターフェース』という意味。
※『インターフェイス』をコンピュータ用語でいうと、「何か」と「何か」をつなぐものという意味
- アプリ内である特定のデータが欲しいとリクエストがある場合にサーバーに必要な情報を取得してアプリにかす流れ
APIのメリット
①ソフトウェア開発の効率化
②セキュリティの向上
③最新情報を簡単に取得可能
①ソフトウェア開発の効率化
APIで組み込むことができる信頼できるプログラムが世の中にすでに存在する場合、そのプログラムと連携することで、自分で1からプログラムを組む必要がなくなり、ソフトウェア開発の効率化がはかれる。プログラム開発側にとって、開発時間を短縮することができるのは大きなメリットで、時間短縮ができれば他の工程に時間を割くことができ、結果的にコスト削減が可能となる。
②セキュリティの向上
各種サービスとAPI連携が行われているため、別アプリケーションログインによる、ログイン認証ができるようになっている。自社でセキュリティレベルの高い会員登録システムを入れるよりも、すでにあるセキュリティレベルの高い会員システムを導入する方がユーザーも安心で、ユーザー新たにユーザー登録をしなくても良い、という大きなメリットがあり、より多くの人に使ってもらえる、というメリットが提供側にもある。
※ちなみに、提供側は、APIの連携前に必ずユーザーの承諾を得る必要があり、ユーザー側も連携サービスを使うにはユーザー情報が共有されることを許可する必要がある。(どの情報が共有されるか、などはサービスにより異なる)
③最新情報を簡単に取得可能
APIを使えば、それぞれのサービスの最新情報をこちら側が毎回更新しなくても取得、利用することができる。
API設計の重要性
- 機能の提供
- 可読性・メンテナンス性
- エラーハンドリング・セキュリティ対策
開発者はAPIの設計がアプリの品質やユーザー体験に大きく影響することを認識した上で、開発をすることが重要
APIの設計で気を付けること
①適切なメソッドを使う
※ RESTfulAPI
Webサービスの設計原則であるRESTを基にしたAPI
- GET(データを取得)
- POST(データを送信・作成)
- PUT(データを更新)
- DELETE(データを削除)
②命名規則を徹底する
③バージョンの管理
- アプリのバージョンと合わせてAPIのバージョンもバージョン1、バージョン2と入れておくと管理しやすい
④画面に依存しない汎用的な設計
- 情報ベースでAPIを作っていく
API連携が必要なアプリ開発
- Swagger・・・APIの設計・構築・文書化、使用のためのオープンソースのソフトウェアフレームワーク
- Postman・・・様々なタイプのAPIリクエストを簡単に作成・送信・テストができる
外部APIを使う際の注意点
- 料金
- SLAの確認(サービス品質保証)
- セキュリティ
- APIの信頼性(APIが止まるとアプリが稼働しなくなる)
参考サイト
今さら聞けないIT用語やたらと耳にするけど「API」って何?
【アプリ開発】アプリ開発におけるAPIとは?API設計でアプリの品質の9割が決まる!?