書籍「Web APIの設計」を読む
今回読む本
Web APIの設計
経緯
Go言語でWebAPIを作ってみてAPI設計に興味が出てきたので読んでみることにした
バックエンドもやってみたい
第1部 APIデザインの基礎
APIとは何か、なぜAPIを設計するのか、様々なAPIに流用できる基本設計・APIの基礎を学ぶ。
OpenAPI Specification(OAS)を使ってインターフェイスを記述するべき。
第1章 APIデザインとは何か
Web API(Application Programming Interface)は、「つながる世界」の大黒柱とも言え、APIデザインはその土台である。
APIデザインは最大の関心ごとであり、システムの成否はAPIの品質が直接左右する。
APIとは何か、誰のために設計するのか、APIの設計が単なるアプリケーションのプログラミングインターフェイス設計ではないということも理解しておく必要がある。
1.1 API とは何か
本書におけるAPIはソフトウェアのWebインターフェイス、すなわち2つのシステム、対象者、組織などが出合い、やり取りをするポイントである。
サーバーアプリケーションはバックエンドアプリケーションと(単にバックエンドとも)呼ばれる。
APIを利用するアプリケーションはコンシューマ、それと比較してAPIを提供するバックエンドはプロバイダ、と呼ばれる。
本書で扱うAPIは、Webサイトと同じようにHTTP依存しているためWeb APIと呼ばれる。
Web APIはソフトウェアを再利用可能なブロックに変え、簡単に組み立てるようにすることで、独創性を解き放ち、イノベーションをもたらしている。(まさに訳な語彙だなという気持ち)
APIは、パブリックAPIとプライベートAPIに分けられる。この区分は提供の仕方ではなく誰に対して提供するかで分けられる。
- パブリックAPI
- サービスまたは製品として消費者のために提供されるAPI
- サードパーティのAPIは全てパブリックAPI
- プライベートAPI
- 自身/組織内のアプリケーションのために提供されるAPI
1.2 APIの設計はなぜ重要か
(ここから別日)
うまく設計されていないものは危険。APIも例外じゃない。
開発者はAPIのインターフェイスが便利でシンプルであることを期待する。
初見でも扱えるように手を尽くさなければいけない。
APIは実装を隠蔽する。
利用者にとってバックエンドが何で実装されているのかどんな処理が走っているのかなどどうでもよい。
1.3 APIの設計を構成する方法
原則を学び、インターフェイス、インターフェイスを中心とする全体像、すべてのユーザーとソフトウェアにシンパシーを覚えること。