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.
コメント