
使用這些基本 REST API 最佳實踐構建出色的 API
2.按照第一步操作,登錄成功就會自動跳轉到集成頁。點擊 +號(新集成) 。
3.填寫信息(注意: 類型這一欄可以選擇 內部 或者 外部)案例選擇的是內部。
4.創建以后就可以看到 內部集成密鑰 ,將密鑰保存下載用戶API交互驗證。
5.可以在下方選擇哪些功能可以通過API來操作。
在獲取API密鑰后,進行可用性測試是確保其正常工作的重要步驟。以下是使用curl進行測試的一個案例
以下接口為Notion 開放平臺接口中 評論 里的檢索評論接口
輸入:
curl 'https://api.notion.com/v1/comments?block_id=5c6a28216bb14a7eb6e1c50111515c3d'\
-H 'Authorization: Bearer '"$NOTION_API_KEY"'' \
-H "Notion-Version: 2022-06-28"
輸出:
結果以JSON格式返回,包含了指定頁面中評論的詳細信息,例如評論對象、該評論的創建時間、評論的最后編輯時間、評論的創建者、評論的內容等
{
"object": "list",
"results": [
{
"object": "comment",
"id": "94cc56ab-9f02-409d-9f99-1037e9fe502f",
"parent": {
"type": "page_id",
"page_id": "5c6a2821-6bb1-4a7e-b6e1-c50111515c3d"
},
"discussion_id": "f1407351-36f5-4c49-a13c-49f8ba11776d",
"created_time": "2022-07-15T16:52:00.000Z",
"last_edited_time": "2022-07-15T19:16:00.000Z",
"created_by": {
"object": "user",
"id": "9b15170a-9941-4297-8ee6-83fa7649a87a"
},
"rich_text": [
{
"type": "text",
"text": {
"content": "Single comment",
"link": null
},
"annotations": {
"bold": false,
"italic": false,
"strikethrough": false,
"underline": false,
"code": false,
"color": "default"
},
"plain_text": "Single comment",
"href": null
}
]
}
],
"next_cursor": null,
"has_more": false,
"type": "comment",
"comment": {}
}
在使用Notion 開放平臺 API搭建應用時,除了獲取和測試API密鑰外,還需考慮以下因素:
速率受限的請求將返回"rate_limited"
錯誤代碼(HTTP 響應狀態 429)。每個集成傳入請求的速率限制是平均每秒三個請求。允許一些超出平均速率的突發。
集成應通過處理 HTTP 429 響應并遵守 Retry-After 響應標頭值(設置為整數秒數(十進制))來適應可變速率限制。等待最短時間后發出的請求不應再受到速率限制。
或者,可以通過降低(或減慢)未來請求的速度來適應速率限制。實現這一點的一種常見方法是使用一個或多個隊列來處理待處理的請求,只要 Notion 不響應 HTTP 429,就可以通過發送請求來消耗這些隊列。
Notion 對某些參數的大小以及請求中子項的深度設有限制。超過這些限制的請求將返回 “validation_error” 錯誤代碼(HTTP 響應狀態 400),并在 “message” 屬性中包含更具體的錯誤詳情。
集成應主動避免發送超過這些限制的請求。建議在自己的測試套件中使用包含大參數的測試數據,以驗證錯誤是否被適當處理。例如,如果集成從外部系統讀取 URL 并將其放入Notion 頁面屬性中,則集成應有一個處理超過 2000 字符長度限制的 URL 的方案。集成可能選擇記錄錯誤,或者通過電子郵件向設置集成的用戶發送警報,或者采取其他措施。
請注意,除了以下的屬性限制外,負載的最大大小為 1000 個區塊元素和 500KB 總體大小。
屬性值的限制:
屬性值類型 | 內部屬性 | 大小限制 |
---|---|---|
富文本對象(Rich text object) | text.content | 2000 字符 |
富文本對象(Rich text object) | text.link.url | 2000 字符 |
富文本對象(Rich text object) | equation.expression | 1000 字符 |
任何類型的區塊數組,包括富文本對象(Any array of all block types, including rich text objects) | 100 個元素 | |
任何 URL(Any URL) | 2000 字符 | |
任何電子郵件(Any email) | 200 字符 |
在申請和使用Notion 開放平臺 API密鑰過程中,你可能會遇到以下常見問題:
如果我的API密鑰失效或被禁用,如何解決?
如果API密鑰失效或被禁用,可以登錄Schiphol開發者平臺檢查API密鑰狀態,并在需要時重新生成一個新的密鑰。如果是由于頻率限制或不當使用導致的禁用,請遵循平臺的使用規則并減少請求頻率。
如何保護我的API密鑰?
為了確保安全,API密鑰應避免暴露在公開的代碼庫中。可以使用環境變量或服務器端代碼保護密鑰,避免將其直接嵌入客戶端代碼中。此外,定期更新API密鑰,并為密鑰設置適當的權限和訪問控制。
在請求Schiphol API時,如何處理密鑰錯誤?
如果API請求返回密鑰錯誤,請確認請求中包含的APP ID和APP KEY是否正確。如果你使用的是舊密鑰,可能需要重新生成一個新的密鑰,并確保在請求中更新正確的密鑰。
為什么我無法獲取Schiphol API密鑰?
如果你無法獲取Schiphol API密鑰,首先請確保你已成功注冊并登錄到Schiphol開放平臺。如果已登錄但仍無法獲取密鑰,請檢查是否填寫了完整的應用信息,并確保所提供的應用描述符合Schiphol平臺的使用規定。
錯誤碼:
HTTP 狀態碼 | “code” | 描述 | “message” 示例 |
---|---|---|---|
400 | “invalid_json” | 請求體無法解碼為 JSON 格式。 | “錯誤解析 JSON 內容。” |
400 | “invalid_request_url” | 請求的 URL 無效。 | “無效的請求 URL” |
400 | “invalid_request” | 請求不被支持。 | “不支持的請求:<請求名稱>。” |
400 | “invalid_grant” | 提供的授權憑證(如授權碼、資源所有者憑證)或刷新令牌無效、過期、被撤銷、不匹配授權請求中的重定向 URI,或發給了其他客戶端。參考 OAuth 2.0 文檔了解更多信息。 | “無效的授權碼:該授權碼已被撤銷。” |
400 | “validation_error” | 請求體與預期的參數模式不匹配。檢查 “message” 屬性獲取更多詳細信息。 | “請求體驗證失敗:body.properties 應該定義,但未定義。” |
400 | “missing_version” | 請求缺少必需的 Notion-Version 頭。參考版本控制。 | “Notion-Version 頭驗證失敗:Notion-Version 頭應該定義,但未定義。” |
401 | “unauthorized” | 提供的令牌無效。 | “API 令牌無效。” |
403 | “restricted_resource” | 使用的令牌沒有執行此操作的權限。 | “API 令牌沒有訪問此資源的權限。” |
404 | “object_not_found” | 使用的令牌對應的資源不存在。該錯誤還可能表示資源未與令牌所有者共享。 | “無法找到 ID 為 be907abe-510e-4116-a3d1-7ea71018c06f 的數據庫。確保相關頁面和數據庫已與您的集成共享。” |
409 | “conflict_error” | 事務無法完成,可能是由于數據沖突。確保參數是最新的,然后重試。 | “保存時發生沖突。請再試一次。” |
429 | “rate_limited” | 請求超出了允許的次數限制。減慢速度并重試。更多關于速率限制的詳細信息。 | “您已被限流。請稍后幾分鐘再試。” |
500 | “internal_server_error” | 發生了服務器內部錯誤。 | “發生了意外錯誤。” |
在獲得Notion 開放平臺 API密鑰之后,即可開啟API接口對接,本文整理了多篇使用Notion 開放平臺 API的案例,幫助讀者更有效地使用Notion 開放平臺 API:
創建頁面、 創建數據庫、 列出所有用戶、 創建評論、創建新的子塊
問題1: 什么是冪簡集成平臺?
冪簡集成是蜜堂有信在2023年打造的一款SAAS產品,建設著國內最全的API平臺,為開發者提供全面、高效、易用的API集成管理方案,一站搜索、試用、集成國內和國外API。讓用戶在AI時代全方位接入互聯網,用API連接一切服務和算力,實現價值倍增。
問題2:如何找到Notion 開放平臺 API
冪簡API平臺可以通過以下兩種方式找到所需API:通過關鍵詞搜索API(例如,輸入’Notion 開放平臺 API‘這類品類詞,更容易找到結果)、或者從API hub分類頁進入尋找。
問題3:Notion 開放平臺 API的替代品有哪些?
市場上存在免費、付費兩種替代者
例如
Evernote-最佳筆記應用 – 用Evernote整理你的筆記
Relanote-zetelkasten /PKM免費在線筆記應用程序
更多競品可以在Notion 開放平臺找到。
本文詳細介紹了Notion開放平臺API密鑰的獲取、測試和使用過程,提供了如何使用curl進行API可用性測試的示例。通過具體的代碼示例,開發者可以更好地理解如何通過API獲取評論數據。文章還探討了在使用Notion API時需要注意的速率限制、請求大小限制以及錯誤處理等問題,為開發者提供了實用的技術支持。本文為開發者使用Notion開放平臺API提供了全面的指南,幫助其順利完成應用集成。