目次
- APIとは
- 仕組み
- 便利ツール
- やってみた
1. APIとは
Application Programming Interfaceの略
機能的には
ソフトウェアやアプリケーションなどの一部を外部に向けて公開
↓↓↓↓↓
第三者が開発したソフトウェアと機能を共有するもの
つまり
アプリケーション、ソフトウェアとプログラムをつなぐもの
例えば
やってみよう
curl -X GET https://zipcloud.ibsnet.co.jp/api/search\?zipcode\=あなたの郵便番号
(間のハイフンは無し)
ちなみにcurl
はサーバへ(から)データ転送を行うコマンド
基本的な使い方はHTTPリクエスト
2. 仕組み
- API エンドポイント
- API キー
- メソッド
- クエリパラメータ
- ヘッダ
- ボディ
- レスポンス
分解してみよう
API エンドポイント
サービスに接続するためのURL
企業などのサービス提供側が用意している
これがないと
どこにデータを取りに行ったら良いかわからない
メソッド
ネーム | 役割 | コメント |
---|---|---|
GET | リソースの取得 | 一番安全 |
POST | リソースの作成 | よく使う |
PUT | リソースの置き換え | ファイルアップロードなど |
PATCH | リソースの部分更新 | べき乗でない |
DELETE | リソースの更新 | べき乗である |
クエリパラメータ
使用するAPI・サービスの種類など詳細を指定https://example.com/pathparameter/{pathparameter}?queryparameter=hoge
※パスパラメータは特定のリソースを識別するために必要な情報
クエリパラメータ
特定のリソースを操作して取得する際に必要な情報
検索やフィルタなどで使用
ヘッダ
データの種類や、API キーなどの認証情報を入力 ※POSTメソッドで指定する
ヘッダ
そもそも情報は付与してリクエストしている
curl -i https://api.github.com/zen
ボディ
APIと送受信したい情報を入力。※POSTメソッドで指定する{hoge_name: fugafuga,description: hogefugahoge}
特定のリソースを識別するために必要な情報
※基本はJSON形式
JSONかXMLか
JSON: JavaScript Object Notation
記述量が少なめ
XML: Extensible Markup Language
HTMLと同じマークアップ言語だがデータ記述用の言語
JSONが増えている
レスポンス (APIからの返答)
同時にアクセスがある時のPATCHなどべき乗でないので設定が必要
また、同時のアクセスが多いものなどには
プロキシサーバーを立ててあげることで複数のAPIアクセスを個別に行い、レスポンスをまとめて返してくれる
3. 便利ツール
Postman
Swagger
Postman
Postman
- リクエストの保存ができる
- パラメーターのカスタマイズがしやすい
- 比較的人気
Swagger
簡単にいうと
APIの仕様書でリクエストも送れるもの
サーバを立てないとリクエストが遅れないなど少し面倒
4. やってみた
Switch botがAPIを公開している
SwitchBotAPI
生のAPIを使って操作してみた