API(Application Programming Interface)とは
ソフトウェアコンポーネント同士が互いに情報をやりとりするのに使用するインタフェースの仕様である。
ソフトウェアと何らかの機能との界面のことで、ソフトウェアの機能を共有できる仕組みのことをAPIといいます。
APIと聞くとWebのAPIを想像しますが、APIという言葉だけでは仕組みのことを指すため、OSのAPIやデバイスドライバのAPI、グラフィックAPIなども含んでいます。ただし、現場では仕組みだけではなく、実際に利用可能なAPIエンドポイントまでを示すことが多く、基本的にAPIという言葉はWebAPIのエンドポイントのことを指して使うことが多いです。
API に アクセスするための URI を指します。
名前または場所を識別する書き方のルールの総称を指します。URLとURNの総称がURIです。
- URL:URIの一部で、ページや画像などを取得したりするための主要な場所とアクセス方法を指定
-
URN:名前を永続的に識別する書き方のルール。(今回の講義では覚えなくて良いです)
- URNについて詳しく知りたい方は→ https://www.kanzaki.com/docs/html/urn.html
エンドポイント
連携したいAPIにアクセスするための接続先を指します
エンドポイント例: https://api.example.com/v1/users/
Web API
Webアプリケーションが他のアプリケーションと通信・連携するための標準的なインターフェースのこと。異なるアプリケーションの間でデータやプログラムの機能をサービスとして活用できるよう規約や手順が定義されています。
Web API の種類
REST (Representational State Transfer)API
- HTTPプロトコルを使用するAPIの中で、現在REST APIは最も汎用的に使用されているAPI
- REST APIは、HTTPプロトコルを使用して通信を行い、一般的にJSONまたはXML形式でデータ
GraphQL
REST以外にGraphQLというものがあります。
GraphQLではクライアントはデータの必要な部分だけをリクエストできることが特徴。
レスポンスの形式
- RESTful API: レスポンスはHTTPステータスコードとレスポンスボディで構成され、レスポンスボディはJSON、XML、HTMLなどの形式で返される。
- GraphQL: レスポンスはGraphQLスキーマに基づいて構成され、JSON形式で返される。クライアントが必要なデータのみを指定するため、不要なデータが返されない。
ルーティング
- RESTful: エンドポイントごとにリソースへのアクセス方法が異なるURIを使用してリクエストを処理する。
- GraphQL: 単一のエンドポイントで、クライアントから必要なデータを取得するためにGraphQLクエリを使用する。