mirror of
https://github.com/jupyterhub/jupyterhub.git
synced 2025-10-17 23:13:00 +00:00
add REST API to docs
include local build, even though it's not as nice as petstore. Due the that, link to petstore as well.
This commit is contained in:
@@ -51,7 +51,15 @@ help:
|
|||||||
clean:
|
clean:
|
||||||
rm -rf $(BUILDDIR)/*
|
rm -rf $(BUILDDIR)/*
|
||||||
|
|
||||||
html:
|
node_modules: package.json
|
||||||
|
npm install && touch node_modules
|
||||||
|
|
||||||
|
rest-api: source/_static/rest-api/index.html
|
||||||
|
|
||||||
|
source/_static/rest-api/index.html: rest-api.yml node_modules
|
||||||
|
npm run rest-api
|
||||||
|
|
||||||
|
html: rest-api
|
||||||
$(SPHINXBUILD) -b html $(ALLSPHINXOPTS) $(BUILDDIR)/html
|
$(SPHINXBUILD) -b html $(ALLSPHINXOPTS) $(BUILDDIR)/html
|
||||||
@echo
|
@echo
|
||||||
@echo "Build finished. The HTML pages are in $(BUILDDIR)/html."
|
@echo "Build finished. The HTML pages are in $(BUILDDIR)/html."
|
||||||
|
14
docs/package.json
Normal file
14
docs/package.json
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
{
|
||||||
|
"name": "jupyterhub-docs-build",
|
||||||
|
"version": "0.0.0",
|
||||||
|
"description": "build JupyterHub swagger docs",
|
||||||
|
"scripts": {
|
||||||
|
"rest-api": "bootprint openapi ./rest-api.yml source/_static/rest-api"
|
||||||
|
},
|
||||||
|
"author": "",
|
||||||
|
"license": "BSD-3-Clause",
|
||||||
|
"devDependencies": {
|
||||||
|
"bootprint": "^0.8.5",
|
||||||
|
"bootprint-openapi": "^0.17.0"
|
||||||
|
}
|
||||||
|
}
|
@@ -3,7 +3,8 @@ swagger: '2.0'
|
|||||||
info:
|
info:
|
||||||
title: JupyterHub
|
title: JupyterHub
|
||||||
description: The REST API for JupyterHub
|
description: The REST API for JupyterHub
|
||||||
version: 0.4.0
|
version: 0.7.0
|
||||||
|
license: BSD-3-Clause
|
||||||
schemes:
|
schemes:
|
||||||
- http
|
- http
|
||||||
securityDefinitions:
|
securityDefinitions:
|
||||||
|
@@ -13,3 +13,4 @@
|
|||||||
spawner
|
spawner
|
||||||
user
|
user
|
||||||
services.auth
|
services.auth
|
||||||
|
rest
|
||||||
|
38
docs/source/api/rest.md
Normal file
38
docs/source/api/rest.md
Normal file
@@ -0,0 +1,38 @@
|
|||||||
|
# The JupyterHub REST API
|
||||||
|
|
||||||
|
JupyterHub has a [REST API](https://en.wikipedia.org/wiki/Representational_state_transfer), which you can use to perform actions on the Hub,
|
||||||
|
such as checking what users are active, adding or removing users,
|
||||||
|
stopping or starting user servers, etc.
|
||||||
|
|
||||||
|
To get access to the JupyterHub API, you must create a token.
|
||||||
|
You can create a token for a particular user with:
|
||||||
|
|
||||||
|
jupyterhub token USERNAME
|
||||||
|
|
||||||
|
Alternately, you can load API tokens in your `jupyterhub_config.py`:
|
||||||
|
|
||||||
|
```python
|
||||||
|
c.JupyterHub.api_tokens = {
|
||||||
|
'secret-token': 'username',
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
To authenticate your requests, pass this token in the Authorization header.
|
||||||
|
For example, to list users with requests in Python:
|
||||||
|
|
||||||
|
```python
|
||||||
|
import requests
|
||||||
|
api_url = 'http://127.0.0.1:8081/hub/api'
|
||||||
|
r = requests.get(api_url + '/users',
|
||||||
|
headers={
|
||||||
|
'Authorization': 'token %s' % token,
|
||||||
|
}
|
||||||
|
)
|
||||||
|
r.raise_for_status()
|
||||||
|
users = r.json()
|
||||||
|
```
|
||||||
|
|
||||||
|
You can see the full [REST API Spec](../_static/rest-api/index.html) for details.
|
||||||
|
A fancier version of the same information can be viewed [on swagger's petstore][].
|
||||||
|
|
||||||
|
[on swagger's petstore]: http://petstore.swagger.io/?url=https://raw.githubusercontent.com/jupyterhub/jupyterhub/master/docs/rest-api.yml#!/default
|
Reference in New Issue
Block a user