IPython Notebook 儀表盤的架構#

注意

這完全複製自舊的 IPython wiki,目前正在開發中。本開發指南的許多資訊已過時。

下表展示了 IPython Notebook 中當前實現的 RESTful Web 服務架構。列出的 URL 使用 HTTP 動詞返回所需資源的表示。

我們正在為 IPython Notebook 建立一個新的儀表盤架構,該架構將允許使用者透過多個目錄檔案來查詢所需的 Notebook。

當前架構#

雜項

HTTP 動詞

URL

操作

GET

/.*/

去除尾隨斜槓。

GET

/api

返回 API 版本資訊。

*

/api/notebooks

已棄用:重定向到 /api/contents

GET

/api/nbconvert

Notebook 內容 API。

HTTP 動詞

URL

操作

GET

/api/contents

返回基本目錄的模型。請參閱 /api/contents/<path>/<file>。

GET

/api/contents/ <file>

返回基本目錄中給定檔案的模型。請參閱 /api/contents/<path>/<file>。

GET

/api/contents/ <path>/<file>

返回檔案或目錄的模型。目錄模型包含其包含的檔案和目錄的模型列表(不含內容)。

PUT

/api/contents/ <path>/<file>

將檔案儲存在由名稱和路徑指定的位置。PUT 與 POST 非常相似,但請求者指定名稱,而 POST 則由伺服器選擇名稱。PUT /api/contents/path/Name.ipynb 將 Notebook 儲存在 path/Name.ipynb。Notebook 結構在 JSON 請求正文的 content 鍵中指定。如果未指定 content,則建立一個新的空 Notebook。PUT /api/contents/path/Name.ipynb,JSON 正文為 {“copy_from” : “[path/to/] OtherNotebook.ipynb”} 將 OtherNotebook 複製到 Name

PATCH

/api/contents/ <path>/<file>

重新命名 Notebook 而不重新上傳內容。

POST

/api/contents/ <path>/<file>

在指定路徑中建立新檔案或目錄。POST 建立新檔案或目錄。伺服器始終決定名稱。POST /api/contents/path 在 path 中建立新的無標題 Notebook。如果指定了 content,則上傳 Notebook;否則,從空開始。POST /api/contents/path,正文為 {“copy_from”:”OtherNotebook.ipynb”} 在 path 中建立 OtherNotebook 的新副本

DELETE

/api/contents/ <path>/<file>

刪除給定路徑中的檔案。

GET

/api/contents/ <path>/<file> /checkpoints

獲取檔案的檢查點列表。

POST

/api/contents/ <path>/<file> /checkpoints

post 建立新的檢查點。

POST

/api/contents/ <path>/<file> /checkpoints/ <checkpoint_ id>

post 從檢查點恢復檔案。

DELETE

/api/contents/ <path>/<file> /checkpoints/ <checkpoint_ id>

delete 清除給定檔案的檢查點。

核心 API

HTTP 動詞

URI

操作

GET

/api/kernels

返回所有核心的模型。

GET

/api/kernels /<kernel_id>

返回具有給定核心 ID 的核心模型。

POST

/api/kernels

使用預設或給定名稱啟動新核心。

DELETE

/api/kernels /<kernel_id>

關閉給定核心。

POST

/api/kernels /<kernel_id> /<action>

對具有給定核心 ID 的核心執行操作。操作可以是“interrupt”(中斷)或“restart”(重啟)。

WS

/api/kernels /<kernel_id> /channels

Websocket 流

GET

/api/kernel specs

返回所有可用核心的規範模型。

GET

/api/kernel specs/ <kernel_name>

返回具有給定核心名稱的所有可用核心的規範模型。

會話 API

HTTP 動詞

URL

操作

GET

/api/sessions

返回活動會話的模型。

POST

/api/sessions

如果會話不存在,則使用給定的 Notebook 名稱、路徑和核心名稱建立新會話。返回活動會話。

GET

/api/sessions /<session_id>

返回具有給定會話 ID 的活動會話模型。

PATCH

/api/sessions /<session_id>

返回具有給定會話 ID 的會話的 Notebook 名稱或路徑的活動會話模型。

DELETE

/api/sessions /<session_id>

刪除具有給定會話 ID 的活動會話模型。

叢集 API

HTTP 動詞

URL

操作

GET

/api/clusters

返回叢集模型。

GET

/api/clusters <cluster_id>

返回給定叢集的模型。

POST

/api/clusters <cluster_id> <action>

對給定叢集執行操作。有效操作為“start”(啟動)和“stop”(停止)

舊架構#

此圖表顯示了單目錄 IPython Notebook 中的 Web 服務。

HTTP 動詞

URL

操作

GET

/notebooks

返回包含每個 Notebook 資訊的字典列表

POST

/notebooks

如果傳送正文,則將該正文儲存為新 Notebook;如果沒有正文,則建立新 Notebook。

GET

/notebooks /<notebook_id>

獲取 Notebook 的 JSON 資料

PUT

/notebooks /<notebook_id>

使用正文資料儲存現有 Notebook

DELETE

/notebooks /<notebook_id>

刪除具有給定 ID 的 Notebook

此圖表顯示了 IPython Notebook 網站的架構。

HTTP 動詞

URL

操作

GET

/

將使用者導航到 Notebook 和叢集的儀表盤。

GET

/<notebook_id>

轉到該 Notebook 的網頁

GET

/new

使用配置檔案(或預設值,如果不存在配置檔案)設定建立新 Notebook

GET

/<notebook_id> /copy

在新選項卡中開啟具有給定 ID 的 Notebook 的副本

GET

/<notebook_id> /print

列印具有給定 ID 的 Notebook;如果 Notebook 不存在,則顯示錯誤訊息

GET

/login

導航到登入頁面;如果沒有定義使用者配置檔案,則將使用者導航到儀表盤

GET

/logout

登出當前配置檔案,並將使用者導航到登入頁面

此圖表顯示了對核心和叢集進行操作的 Web 服務。

HTTP 動詞

URL

操作

GET

/kernels

返回當前正在執行的核心 ID 列表

GET

/kernels /<kernel_id>

GET

/kernels /<kernel_id> <action>

對具有給定 ID 的核心執行操作(重啟/終止)

GET

/kernels /<kernel_id> /iopub

GET

/kernels /<kernel_id> /shell

GET

/rstservice/ render

GET

/files/(.*)

GET

/clusters

返回包含每個叢集資訊的字典列表

POST

/clusters /<profile_id> /<cluster_ action>

對具有給定配置檔案 ID 的叢集執行操作(啟動/停止)

GET

/clusters /<profile_id>

返回具有給定配置檔案 ID 的叢集的 JSON 資料