0
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

APIを改めて勉強してIoT機器を動かす

Last updated at Posted at 2021-03-28
1 / 27

目次

  1. APIとは
  2. 仕組み
  3. 便利ツール
  4. やってみた

1. APIとは

Application Programming Interfaceの略


 機能的には

ソフトウェアやアプリケーションなどの一部を外部に向けて公開
 ↓↓↓↓↓
第三者が開発したソフトウェアと機能を共有するもの


つまり

アプリケーション、ソフトウェアとプログラムをつなぐもの


例えば

よくある郵便番号を入力したら住所を入力してくれるやつ
Image from Gyazo


やってみよう

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が増えている

Image from Gyazo


レスポンス (APIからの返答)

同時にアクセスがある時のPATCHなどべき乗でないので設定が必要
また、同時のアクセスが多いものなどには
プロキシサーバーを立ててあげることで複数のAPIアクセスを個別に行い、レスポンスをまとめて返してくれる


3. 便利ツール

Postman
Swagger


Postman

Image from Gyazo


Postman

  • リクエストの保存ができる
  • パラメーターのカスタマイズがしやすい
  • 比較的人気

Swagger

簡単にいうと
APIの仕様書でリクエストも送れるもの
サーバを立てないとリクエストが遅れないなど少し面倒


4. やってみた

Image from Gyazo


Switch botがAPIを公開している

SwitchBotAPI

生のAPIを使って操作してみた


参考:
郵便番号検索API
APIの仕組みが分かる・使いこなせる人材になれる記事(Pythonコード付き)

0
4
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?