# 筆記本 API
原文鏈接 : [http://zeppelin.apache.org/docs/0.7.2/rest-api/rest-notebook.html](http://zeppelin.apache.org/docs/0.7.2/rest-api/rest-notebook.html)
譯文鏈接 : [http://www.apache.wiki/pages/viewpage.action?pageId=10031062](http://www.apache.wiki/pages/viewpage.action?pageId=10031062)
貢獻者 : [片刻](/display/~jiangzhonglian) [ApacheCN](/display/~apachecn) [Apache中文網](/display/~apachechina)
## 概述
Apache Zeppelin提供了幾個REST API,用于交互和遠程激活zeppelin功能。所有REST API都可以從以下端點開始`http://[zeppelin-server]:[zeppelin-port]/api`。需要注意的是Apache的齊柏林飛艇的REST API接收或返回JSON對象,建議你安裝一些JSON觀眾如[JSONView](https://chrome.google.com/webstore/detail/jsonview/chklaanhfefbnpoihckbnefhakgolnmc)。如果您使用Apache Zeppelin并發現需要一個額外的REST API,請[提出問題或向我們發送電子郵件](http://zeppelin.apache.org/community.html)。
筆記本REST API支持以下操作:列表,創建,獲取,刪除,克隆,運行,導出,導入,具體如下表所示。
## 注意操作
### [筆記列表](http://zeppelin.apache.org/docs/0.7.2/rest-api/rest-notebook.html#list-of-the-notes)
| 描述 | 此`GET`方法列出了服務器上的可用注釋。筆記本JSON包含了`name`和`id`所有音符。 |
| 網址 | `http://[zeppelin-server]:[zeppelin-port]/api/notebook` |
| 成功代碼 | 200 |
| 失敗代碼 | 500 |
| 示例JSON響應 |
```
{
"status": "OK",
"message": "",
"body": [
{
"name":"Homepage",
"id":"2AV4WUEMK"
},
{
"name":"Zeppelin Tutorial",
"id":"2A94M5J1Z"
}
]
}
```
|
### 創建新的筆記
| 描述 | 此`POST`方法使用給定的名稱或默認名稱創建一個新的注釋,如果沒有給定。返回的JSON的body字段包含新的note id。 |
| 網址 | `http://[zeppelin-server]:[zeppelin-port]/api/notebook` |
| 成功代碼 | 201 |
| 失敗代碼 | 500 |
| 示例JSON輸入(無段落) |
```
{"name": "name of new note"}
```
|
| JSON輸入示例(含初始段落) |
```
{
"name": "name of new note",
"paragraphs": [
{
"title": "paragraph title1",
"text": "paragraph text1"
},
{
"title": "paragraph title2",
"text": "paragraph text2"
}
]
}
```
|
| 示例JSON響應 |
```
{
"status": "CREATED",
"message": "",
"body": "2AZPHY918"
}
```
|
### 獲取所有段落的狀態
| 描述 | 該`GET`方法通過給定的注釋id獲取所有段落的狀態。返回的JSON的body字段包含由段落id,段落狀態,段落完成日期,段落開始日期組成的數組。 |
| 網址 | `http://[zeppelin-server]:[zeppelin-port]/api/notebook/job/[noteId]` |
| 成功代碼 | 200 |
| 失敗代碼 | 500 |
| 示例JSON響應 |
```
{
"status": "OK",
"body": [
{
"id":"20151121-212654_766735423",
"status":"FINISHED",
"finished":"Tue Nov 24 14:21:40 KST 2015",
"started":"Tue Nov 24 14:21:39 KST 2015"
},
{
"progress":"1",
"id":"20151121-212657_730976687",
"status":"RUNNING",
"finished":"Tue Nov 24 14:21:35 KST 2015",
"started":"Tue Nov 24 14:21:40 KST 2015"
}
]
}
```
|
### 獲取現有的筆記信息
| 描述 | 此`GET`方法使用給定的ID檢索現有的注釋的信息。返回的JSON的body字段包含有關注釋中段落的信息。 |
| 網址 | `http://[zeppelin-server]:[zeppelin-port]/api/notebook/[noteId]` |
| 成功代碼 | 200 |
| 失敗代碼 | 500 |
| 示例JSON響應 |
```
{
"status": "OK",
"message": "",
"body": {
"paragraphs": [
{
"text": "%sql \nselect age, count(1) value\nfrom bank \nwhere age < 30 \ngroup by age \norder by age",
"config": {
"colWidth": 4,
"graph": {
"mode": "multiBarChart",
"height": 300,
"optionOpen": false,
"keys": [
{
"name": "age",
"index": 0,
"aggr": "sum"
}
],
"values": [
{
"name": "value",
"index": 1,
"aggr": "sum"
}
],
"groups": [],
"scatter": {
"xAxis": {
"name": "age",
"index": 0,
"aggr": "sum"
},
"yAxis": {
"name": "value",
"index": 1,
"aggr": "sum"
}
}
}
},
"settings": {
"params": {},
"forms": {}
},
"jobName": "paragraph_1423500782552_-1439281894",
"id": "20150210-015302_1492795503",
"results": {
"code": "SUCCESS",
"msg": [
{
"type": "TABLE",
"data": "age\tvalue\n19\t4\n20\t3\n21\t7\n22\t9\n23\t20\n24\t24\n25\t44\n26\t77\n27\t94\n28\t103\n29\t97\n"
}
]
},
"dateCreated": "Feb 10, 2015 1:53:02 AM",
"dateStarted": "Jul 3, 2015 1:43:17 PM",
"dateFinished": "Jul 3, 2015 1:43:23 PM",
"status": "FINISHED",
"progressUpdateIntervalMs": 500
}
],
"name": "Zeppelin Tutorial",
"id": "2A94M5J1Z",
"angularObjects": {},
"config": {
"looknfeel": "default"
},
"info": {}
}
}
```
|
### 刪除筆記
| 描述 | 此`DELETE`方法將刪除給定注釋id的注釋。 |
| 網址 | `http://[zeppelin-server]:[zeppelin-port]/api/notebook/[noteId]` |
| 成功代碼 | 200 |
| 失敗代碼 | 500 |
| 示例JSON響應 |
```
{"status": "OK","message": ""}
```
|
### 克隆筆記?
| 描述 | 此`POST`方法將按照給定的ID克隆一個注釋,并使用給定的名稱或默認名稱創建一個新的注釋,如果沒有給定的。返回的JSON的body字段包含新的note id。 |
| 網址 | `http://[zeppelin-server]:[zeppelin-port]/api/notebook/[noteId]` |
| 成功代碼 | 201 |
| 失敗代碼 | 500 |
| 示例JSON輸入 |
```
{"name": "name of new note"}
```
|
| 示例JSON響應 |
```
{
"status": "CREATED",
"message": "",
"body": "2AZPHY918"
}
```
|
### 導出筆記
| 描述 | 此`GET`方法會導出一個給定ID的注釋,并且gernerates一個JSON |
| 網址 | `http://[zeppelin-server]:[zeppelin-port]/api/notebook/export/[noteId]` |
| 成功代碼 | 201 |
| 失敗代碼 | 500 |
| 示例JSON響應 |
```
{
"paragraphs": [
{
"text": "%md This is my new paragraph in my new note",
"dateUpdated": "Jan 8, 2016 4:49:38 PM",
"config": {
"enabled": true
},
"settings": {
"params": {},
"forms": {}
},
"jobName": "paragraph_1452300578795_1196072540",
"id": "20160108-164938_1685162144",
"dateCreated": "Jan 8, 2016 4:49:38 PM",
"status": "READY",
"progressUpdateIntervalMs": 500
}
],
"name": "source note for export",
"id": "2B82H3RR1",
"angularObjects": {},
"config": {},
"info": {}
}
```
|
### 導入筆記
| 描述 | 該`POST`方法從注釋JSON輸入中輸入一個注釋 |
| 網址 | `http://[zeppelin-server]:[zeppelin-port]/api/notebook/import` |
| 成功代碼 | 201 |
| 失敗代碼 | 500 |
| 示例JSON輸入 |
```
{
"paragraphs": [
{
"text": "%md This is my new paragraph in my new note",
"dateUpdated": "Jan 8, 2016 4:49:38 PM",
"config": {
"enabled": true
},
"settings": {
"params": {},
"forms": {}
},
"jobName": "paragraph_1452300578795_1196072540",
"id": "20160108-164938_1685162144",
"dateCreated": "Jan 8, 2016 4:49:38 PM",
"status": "READY",
"progressUpdateIntervalMs": 500
}
],
"name": "source note for export",
"id": "2B82H3RR1",
"angularObjects": {},
"config": {},
"info": {}
}
```
|
| 示例JSON響應 |
```
{
"status": "CREATED",
"message": "",
"body": "2AZPHY918"
}
```
|
### 運行所有段落
| 描述 | 此`POST`方法運行給定注釋id中的所有段落。
如果找不到Note id 404返回。如果解釋器有問題返回412錯誤。 |
| 網址 | `http://[zeppelin-server]:[zeppelin-port]/api/notebook/job/[noteId]` |
| 成功代碼 | 200 |
| 失敗代碼 | 404或412 |
| 示例JSON響應 |
```
{"status": "OK"}
```
|
| 示例JSON錯誤響應 | {
"status": "NOTFOUND",
"message": "note not found."
}
{
"status": "PRECONDITIONFAILED",
"message": "paragraph1469771130099-278315611 Not selected or Invalid Interpreter bind"
} |
### 停止所有段落
| 描述 | 此`DELETE`方法將停止給定注釋id中的所有段落。 |
| 網址 | `http://[zeppelin-server]:[zeppelin-port]/api/notebook/job/[noteId]` |
| 成功代碼 | 200 |
| 失敗代碼 | 500 |
| 示例JSON響應 |
```
{"status":"OK"}
```
|
### 清除所有段落結果
| 描述 | 此`PUT`方法清除給定id的注釋的所有段落結果。 |
| 網址 | `http://[zeppelin-server]:[zeppelin-port]/api/notebook/[noteId]/clear` |
| 成功代碼 | 200 |
| 禁止代碼 | 401 |
| 找不到代碼 | 404 |
| 失敗代碼 | 500 |
| 示例JSON響應 |
```
{"status": "OK"}
```
|
## 段落操作
### 創建一個新的段落
| 描述 | 此`POST`方法使用JSON有效載荷創建一個新段落。返回的JSON的body字段包含新的段落ID。 |
| 網址 | `http://[zeppelin-server]:[zeppelin-port]/api/notebook/[noteId]/paragraph` |
| 成功代碼 | 201 |
| 失敗代碼 | 500 |
| 示例JSON輸入(添加到最后) |
```
{
"title": "Paragraph insert revised",
"text": "%spark\nprintln(\"Paragraph insert revised\")"
}
```
|
| JSON輸入示例(添加到特定索引) |
```
{
"title": "Paragraph insert revised",
"text": "%spark\nprintln(\"Paragraph insert revised\")",
"index": 0
}
```
|
| 示例JSON響應 |
```
{
"status": "CREATED",
"message": "",
"body": "20151218-100330_1754029574"
}
```
|
### 獲取段落信息
| 描述 | 此`GET`方法使用給定的id檢索現有段落的信息。返回的JSON的body字段包含有關段落的信息。 |
| 網址 | `http://[zeppelin-server]:[zeppelin-port]/api/notebook/[noteId]/paragraph/[paragraphId]` |
| 成功代碼 | 200 |
| 失敗代碼 | 500 |
| 示例JSON響應 |
```
{
"status": "OK",
"message": "",
"body": {
"title": "Paragraph2",
"text": "%spark\n\nprintln(\"it's paragraph2\")",
"dateUpdated": "Dec 18, 2015 7:33:54 AM",
"config": {
"colWidth": 12,
"graph": {
"mode": "table",
"height": 300,
"optionOpen": false,
"keys": [],
"values": [],
"groups": [],
"scatter": {}
},
"enabled": true,
"title": true,
"editorMode": "ace/mode/scala"
},
"settings": {
"params": {},
"forms": {}
},
"jobName": "paragraph_1450391574392_-1890856722",
"id": "20151218-073254_1105602047",
"results": {
"code": "SUCCESS",
"msg": [
{
"type": "TEXT",
"data": "it's paragraph2\n"
}
]
},
"dateCreated": "Dec 18, 2015 7:32:54 AM",
"dateStarted": "Dec 18, 2015 7:33:55 AM",
"dateFinished": "Dec 18, 2015 7:33:55 AM",
"status": "FINISHED",
"progressUpdateIntervalMs": 500
}
}
```
|
### 獲取單個段落的狀態
| 描述 | 該`GET`方法通過給定的注釋和段落ID獲取單個段落的狀態。返回的JSON的body字段包含由段落id,段落狀態,段落完成日期,段落開始日期組成的數組。 |
| 網址 | `http://[zeppelin-server]:[zeppelin-port]/api/notebook/job/[noteId]/[paragraphId]` |
| 成功代碼 | 200 |
| 失敗代碼 | 500 |
| 示例JSON響應 |
```
{
"status": "OK",
"body": {
"id":"20151121-212654_766735423",
"status":"FINISHED",
"finished":"Tue Nov 24 14:21:40 KST 2015",
"started":"Tue Nov 24 14:21:39 KST 2015"
}
}
```
|
### 更新段落配置
| 描述 | 此`PUT`方法使用給定的ID更新段落配置,以便用戶可以更改段落設置,如圖形類型,顯示或隱藏編輯器/結果和段落大小等。您可以更新所需的某些字段,例如,`colWidth`只能通過發送請求更新字段與有效載荷`{"colWidth": 12.0}`。 |
| 網址 | `http://[zeppelin-server]:[zeppelin-port]/api/notebook/[noteId]/paragraph/[paragraphId]/config` |
| 成功代碼 | 200 |
| 錯誤請求代碼 | 400 |
| 禁止代碼 | 403 |
| 找不到代碼 | 404 |
| 失敗代碼 | 500 |
| 示例JSON輸入 |
```
{
"colWidth": 6.0,
"graph": {
"mode": "lineChart",
"height": 200.0,
"optionOpen": false,
"keys": [
{
"name": "age",
"index": 0.0,
"aggr": "sum"
}
],
"values": [
{
"name": "value",
"index": 1.0,
"aggr": "sum"
}
],
"groups": [],
"scatter": {}
},
"editorHide": true,
"editorMode": "ace/mode/markdown",
"tableHide": false
}
```
|
| 示例JSON響應 |
```
{
"status":"OK",
"message":"",
"body":{
"text":"%sql \nselect age, count(1) value\nfrom bank \nwhere age \u003c 30 \ngroup by age \norder by age",
"config":{
"colWidth":6.0,
"graph":{
"mode":"lineChart",
"height":200.0,
"optionOpen":false,
"keys":[
{
"name":"age",
"index":0.0,
"aggr":"sum"
}
],
"values":[
{
"name":"value",
"index":1.0,
"aggr":"sum"
}
],
"groups":[],
"scatter":{}
},
"tableHide":false,
"editorMode":"ace/mode/markdown",
"editorHide":true
},
"settings":{
"params":{},
"forms":{}
},
"apps":[],
"jobName":"paragraph1423500782552-1439281894",
"id":"20150210-015302_1492795503",
"results":{
"code":"SUCCESS",
"msg": [
{
"type":"TABLE",
"data":"age\tvalue\n19\t4\n20\t3\n21\t7\n22\t9\n23\t20\n24\t24\n25\t44\n26\t77\n27\t94\n28\t103\n29\t97\n"
}
]
},
"dateCreated":"Feb 10, 2015 1:53:02 AM",
"dateStarted":"Jul 3, 2015 1:43:17 PM",
"dateFinished":"Jul 3, 2015 1:43:23 PM",
"status":"FINISHED",
"progressUpdateIntervalMs":500
}
}
```
|
### 刪除一段
| 描述 | 此`DELETE`方法通過給定的注釋和段落ID刪除段落。 |
| 網址 | `http://[zeppelin-server]:[zeppelin-port]/api/notebook/[noteId]/paragraph/[paragraphId]` |
| 成功代碼 | 200 |
| 失敗代碼 | 500 |
| 示例JSON響應 |
```
{"status": "OK","message": ""}
```
|
### 異步運行段落
| 描述 | 此`POST`方法通過給定的注釋和段落ID異步運行段落。即使該段落的執行失敗,該API也會始終返回SUCCESS,因為API是異步的 |
| 網址 | `http://[zeppelin-server]:[zeppelin-port]/api/notebook/job/[noteId]/[paragraphId]` |
| 成功代碼 | 200 |
| 失敗代碼 | 500 |
| 示例JSON輸入(可選,僅當需要更新動態表單的值時才需要) |
```
{
"name": "name of new note",
"params": {
"formLabel1": "value1",
"formLabel2": "value2"
}
}
```
|
| 示例JSON響應 |
```
{“status”:“OK”}
```
|
### 同步運行段落
| 描述 | 此`POST`方法通過給定的注釋和段落ID同步運行段落。該API可以根據段執行的結果返回SUCCESS或ERROR |
| 網址 | `http://[zeppelin-server]:[zeppelin-port]/api/notebook/run/[noteId]/[paragraphId]` |
| 成功代碼 | 200 |
| 失敗代碼 | 500 |
| 示例JSON輸入(可選,僅當需要更新動態表單的值時才需要) |
```
{
"name": "name of new note",
"params": {
"formLabel1": "value1",
"formLabel2": "value2"
}
}
```
|
| 示例JSON響應 |
```
{"status": "OK"}
```
|
| 示例JSON錯誤 |
```
{
"status": "INTERNAL_SERVER_ERROR",
"body": {
"code": "ERROR",
"type": "TEXT",
"msg": "bash: -c: line 0: unexpected EOF while looking for matching ``'\nbash: -c: line 1: syntax error: unexpected end of file\nExitValue: 2"
}
}
```
|
### 停止一段
| 描述 | 該`DELETE`方法通過給定的注釋和段落ID來停止段落。 |
| 網址 | `http://[zeppelin-server]:[zeppelin-port]/api/notebook/job/[noteId]/[paragraphId]` |
| 成功代碼 | 200 |
| 失敗代碼 | 500 |
| 示例JSON響應 |
```
{"status": "OK"}
```
|
### 將段落移動到特定索引
| 描述 | 此`POST`方法將一個段落從注釋移動到特定的索引(順序)。 |
| 網址 | `http://[zeppelin-server]:[zeppelin-port]/api/notebook/[noteId]/paragraph/[paragraphId]/move/[newIndex]` |
| 成功代碼 | 200 |
| 失敗代碼 | 500 |
| 示例JSON響應 |
```
{"status": "OK","message": ""}
```
|
### 全文搜索所有筆記中的段落
| 描述 | `GET`?請求將返回匹配段落的列表 |
| 網址 | `http://[zeppelin-server]:[zeppelin-port]/api/notebook/search?q=[query]` |
| 成功代碼 | 200 |
| 失敗代碼 | 500 |
| 示例JSON響應 |
```
{
"status": "OK",
"body": [
{
"id": "/paragraph/",
"name":"Note Name",
"snippet":"",
"text":""
}
]
}
```
|
## Cron工作
### 添加Cron作業
| 描述 | 此`POST`方法將cron作業添加到給定的注釋id中。 |
| 網址 | `http://[zeppelin-server]:[zeppelin-port]/api/notebook/cron/[noteId]` |
| 成功代碼 | 200 |
| 失敗代碼 | 500 |
| 示例JSON輸入 |
```
{"cron": "cron expression of note"}
```
|
| 示例JSON響應 |
```
{"status": "OK"}
```
|
### 刪除Cron作業
| 描述 | 該`DELETE`方法通過給定的注釋id刪除cron作業。 |
| 網址 | `http://[zeppelin-server]:[zeppelin-port]/api/notebook/cron/[noteId]` |
| 成功代碼 | 200 |
| 失敗代碼 | 500 |
| 示例JSON響應 |
```
{"status": "OK"}
```
|
### 獲得Cron工作
| 描述 | 該`GET`方法獲取給定注釋id的cron作業表達式。返回的JSON的body字段包含cron表達式。 |
| 網址 | `http://[zeppelin-server]:[zeppelin-port]/api/notebook/cron/[noteId]` |
| 成功代碼 | 200 |
| 失敗代碼 | 500 |
| 示例JSON響應 |
```
{"status": "OK", "body": "* * * * * ?"}
```
|
## 允許
### **獲取注釋權限信息**
| 描述 | 此`GET`方法獲取注釋授權信息。 |
| 網址 | `http://[zeppelin-server]:[zeppelin-port]/api/notebook/[noteId]/permissions` |
| 成功代碼 | 200 |
| 禁止代碼 | 403 |
| 失敗代碼 | 500 |
| 示例JSON響應 |
```
{
"status":"OK",
"message":"",
"body":{
"readers":[
"user2"
],
"owners":[
"user1"
],
"writers":[
"user2"
]
}
}?
```
|
### 設置備注權限
| 描述 | 此`PUT`方法設置備注授權信息。 |
| 網址 | `http://[zeppelin-server]:[zeppelin-port]/api/notebook/[noteId]/permissions` |
| 成功代碼 | 200 |
| 禁止代碼 | 403 |
| 失敗代碼 | 500 |
| 示例JSON輸入 |
```
{
"readers": [
"user1"
],
"owners": [
"user2"
],
"writers": [
"user1"
]
}
```
|
| 示例JSON響應 |
```
{
```
```
"status": "OK"
}
```
|
- 快速入門
- 什么是Apache Zeppelin?
- 安裝
- 配置
- 探索Apache Zeppelin UI
- 教程
- 動態表單
- 發表你的段落
- 自定義Zeppelin主頁
- 升級Zeppelin版本
- 從源碼編譯
- 使用Flink和Spark Clusters安裝Zeppelin教程
- 解釋器
- 概述
- 解釋器安裝
- 解釋器依賴管理
- 解釋器的模擬用戶
- 解釋員執行Hook(實驗)
- Alluxio 解釋器
- Beam 解釋器
- BigQuery 解釋器
- Cassandra CQL 解釋器
- Elasticsearch 解釋器
- Flink 解釋器
- Geode/Gemfire OQL 解釋器
- HBase Shell 解釋器
- HDFS文件系統 解釋器
- Hive 解釋器
- Ignite 解釋器
- JDBC通用 解釋器
- Kylin 解釋器
- Lens 解釋器
- Livy 解釋器
- Markdown 解釋器
- Pig 解釋器
- PostgreSQL, HAWQ 解釋器
- Python 2&3解釋器
- R 解釋器
- Scalding 解釋器
- Scio 解釋器
- Shell 解釋器
- Spark 解釋器
- 系統顯示
- 系統基本顯示
- 后端Angular API
- 前端Angular API
- 更多
- 筆記本存儲
- REST API
- 解釋器 API
- 筆記本 API
- 筆記本資源 API
- 配置 API
- 憑據 API
- Helium API
- Security ( 安全 )
- Shiro 授權
- 筆記本 授權
- 數據源 授權
- Helium 授權
- Advanced ( 高級 )
- Zeppelin on Vagrant VM ( Zeppelin 在 Vagrant 虛擬機上 )
- Zeppelin on Spark Cluster Mode( Spark 集群模式下的 Zeppelin )
- Zeppelin on CDH ( Zeppelin 在 CDH 上 )
- Contibute ( 貢獻 )
- Writing a New Interpreter ( 寫一個新的解釋器 )
- Writing a new Visualization (Experimental) ( 編寫新的可視化(實驗) )
- Writing a new Application (Experimental) ( 寫一個新的應用程序( 實驗 ) )
- Contributing to Apache Zeppelin ( Code ) ( 向 Apache Zeppelin 貢獻( 代碼 ) )
- Contributing to Apache Zeppelin ( Website ) ( 向 Apache Zeppelin 貢獻(website) )