LoginSignup
0
2

More than 1 year has passed since last update.

40代おっさんPythonでWeb APIを叩いてみる

Posted at

本記事ついて

本記事は プログラミング初学者の私が学習していく中でわからない単語や概要をなるべくわかりやすい様にまとめたものです。
もし誤りなどありましたらコメントにてお知らせいただけるとありがたいです。

APIを叩く上で必要な情報

APIに接続するための情報

・API登録のタイミングで入手
・サービスに接続するためのURLであるAPIエンドポイント
・接続に必要なID的要素、APIキーが必要

APIに送信する情報

・基本的には各APIのドキュメントに細かく記載
HTTP:どのHTTPメソッドを使用するか(主にPOSTかGETを使用)
header:ヘッダーにはデータの種類や、APIキーなどの認証情報を記載
body:JSON形式で送受信したい情報(データ)を記載

JSONを理解する

リクエストの送信・レスポンスにはJSONフォーマットの理解が必要

JSONとは

JavaScript Object Notationの略
JavaScriptのオブジェクトの書き方を元にしたデータフォーマット
XMLなどと同様のテキストベースのデータフォーマット

XML

タグと呼ばれるものを用いてデータ構造を表現
開始タグと終了タグが対になった表記方法

<?xml version="2.0" encoding="utf-8"?>
<data>
 <item>
   <id>1</id>
   <name>lmanyu</name>
 </item>
 <item>
   <id>2</id>
   <name>lmanishi</name>
 </item>
</data>

XMLは直感的に理解しにくい点がある

JSON

[
 {"id":"1","name":"lmanyu"},
 {"id":"2","name":"lmanishi"}
]

同じデータを扱っているにも関わらず情報量に大きな違いが出る

JSONの書き方

JSONは{}の中にキーとバリューをコロンで区切って記述する

{
 "id":"1",
 "name":"lmanyu"
}

キーは必ずダブルクォーテーションで囲む必要があり、シングルクォーテーションだとエラーになってしまう

HTTPメソッド

クライアント(API使用者/ユーザー)が行いたい処理をサーバー(API側)に伝えるという役割

GET

WebページやAPIからのデータ取得
cssファイルやjavascriptファイルと言ったデータ取得

POST

フォームからデータを送信
アカウントの新規作成
新規データを作成

PUT

既存データの編集
(アカウントやツイート情報、SNS上でのコメントなどを編集)

DELETE

データの削除
(アカウントやブログ記事、その他様々なデータを削除する)

Pythonを用いてAPIを使ってみる

今回はJSONPlaceholderを使用
その中のpostsを使う

!pip3 install requests

リクエストを送るのに必要なライブラリ
インポート

import requests

エンドポイントを変数urlに格納

url = 'https://jsonplaceholder.typicode.com/posts/'

HTTPメソッドのGETを使用
requestsを使用してgetの中に変数urlを入れる、そして変数resに格納

res = requests.get(url)

res.status_codeを入れて叩くと
200
が返ってきたら成功です

res.json()と叩くとレスポンスの中身をJSON形式で取得できます。

res.json()[:5]
これで前5個見れる

とりあえず、最初のデータを変数datumに格納

datum = res.json()[0]

欲しい情報だけをとる
[]のなかに記入
とりあえず、titleを取ってくる

datum['title']

特定の情報を取ってくる
とりあえず、ID10番目の情報を取ってくる

url = 'https://jsonplaceholder.typicode.com/posts/'
body = {
    'id': 10
}

res = requests.get(url, body)
res.json()

参考資料

https://www.udemy.com/course/python-web-api/learn/lecture/25073250#overview

0
2
0

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
2