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 数据