はじめに
個人ブログに記事を投稿するプログラムをPythonで作っていたのですが、microCMSで作成したスキーマにリクエストを投げるプログラムの作成に少し時間がかかったので、備忘録も兼ねて投稿します。
microCMSのエンドポイントにリクエストを投げるクラス
今回は、classesフォルダにrequest.pyというファイルを格納しているものとします。
classes/request.py
import requests as req
import json
class Request:
def __init__(self, url):
self.headers = {
'X-MICROCMS-API-KEY': 'xxxxxxxxxxxxxxxxx',
'Content-Type': 'application/json'
}
self.url = url
def get(self):
res = req.get(self.url, headers=self.headers)
return res.json()
def post(self, data):
res = req.post(self.url, data=json.dumps(data), headers=self.headers)
return res.json()
下記がポイントです。
- requestsを使う
- ヘッダーに「X-MICROCMS-API-KEY」を組み込む
- APIキーはmicroCMSの管理画面から取得可能
- POSTリクエストのdataは、json.dumpsを使ってJSONデータにする
実際にGET・POSTリクエストを行う
main.py
from classes.request import Request
# abcスキーマにリクエストを行う
req = Request('https://hogehoge.microcms.io/api/v1/abc')
# GETリクエスト
getRes = req.get()
# POSTリクエスト
data = { ... }
postRes = req.post(data)
おわりに
以前自作のAPIに対して同じような処理を実装したことがあったのですが、その際はurllib3.requestを使用して実装したので、POSTのdataはどうやってリクエストに含める?と戸惑いながら実装しました。