Draftsを使ってNotion APIのレスポンスを読む

Drafts のActionを使う

Draftsは多機能テキストエディタとして知られています。その最大の特長は、テキストを自由に整形して管理できる点にあります。Actionと呼ばれるJavaScriptベースのスクリプトを活用することで、煩雑なデータ処理を簡単に行うことが可能です。Web API開発時のレスポンス確認にDraftsを利用する方法は、Notion APIを開発する際に大きな助けとなります。

Notion APIのレスポンス

Notion APIを使ったスクリプトを作成する時に、期待しているとおりに動かないことがよくあります。そんな時、解決の糸口になるのはNotionから返ってきたレスポンスを直接見ることです。
しかしNotion APIではレスポンスをJSON形式でやり取りしているため、そのままだと何が書かれているかを判別することは難しいです。

{"object":"page","id":"59833787-2cf9-4fdf-8782-e53db20768a5","created_time":"2022-03-01T19:05:00.000Z","last_edited_time":"2022-07-06T19:16:00.000Z","created_by":{"object":"user","id":"ee5f0f84-409a-440f-983a-a5315961c6e4"},"last_edited_by":{"object":"user","id":"ee5f0f84-409a-440f-983a-a5315961c6e4"},"cover":{"type":"external","external":{"url":"https://upload.wikimedia.org/wikipedia/commons/6/62/Tuscankale.jpg"}},"icon":{"type":"emoji","emoji":"🥬"},"parent":{"type":"database_id","database_id":"d9824bdc-8445-4327-be8b-5b47500af6ce"},"archived":false,"properties":{"Name":{"id":"title"}},"url":"https://www.notion.so/Tuscan-Kale-598337872cf94fdf8782e53db20768a5"}

このままではわかりづらいため、改行やインデントを挟んで人間が読みやすくします。

{
  "object": "page",
  "id": "59833787-2cf9-4fdf-8782-e53db20768a5",
  "created_time": "2022-03-01T19:05:00.000Z",
  "last_edited_time": "2022-07-06T19:16:00.000Z",
  "created_by": {
    "object": "user",
    "id": "ee5f0f84-409a-440f-983a-a5315961c6e4"
  },
  "last_edited_by": {
    "object": "user",
    "id": "ee5f0f84-409a-440f-983a-a5315961c6e4"
  },
  "cover": {
    "type": "external",
    "external": {
      "url": "https://upload.wikimedia.org/wikipedia/commons/6/62/Tuscankale.jpg"
    }
  },
  "icon": {
    "type": "emoji",
    "emoji": "🥬"
  },
  "parent": {
    "type": "database_id",
    "database_id": "d9824bdc-8445-4327-be8b-5b47500af6ce"
  },
  "archived": false,
  "properties": {
    "Name": {
      "id": "title"
    }
  },
  "url": "https://www.notion.so/Tuscan-Kale-598337872cf94fdf8782e53db20768a5"
}

Drafts のアクションでJSONを整形する

Draftsで簡単に整形するために、以下の様にスクリプトを作りました。このActionを実行することで、JSONを読みやすい形に変換できます。

const selected = editor.getSelectedText();
let query = '';
let string = '';

if (!selected || selected.length === 0){
   query = editor.getText();
}else{
   query = selected;
}

let items = JSON.parse(query)
const jsonString = JSON.stringify(items, null, 4);
let d = new Draft();
d.content = jsonString;
d.update();
app.openInNewWindow(d);

APIを使ったスクリプトを作るときは頻繁にレスポンスを確認します。Draftsのアクションを使うことで、レスポンスをそのままDraftsに貼り付けてすぐに確認することができるため、開発がはかどります!

最後に、DraftsのDirectoryに登録しているため、よろしければダウンロードしてください。

Drafts Directory: Parse JSON
Example actions and other extensions for Drafts, the quick-capture notes app.

コメント

タイトルとURLをコピーしました