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:
Min RK
2016-07-23 12:05:25 +02:00
parent 9b71f11213
commit 19ae38c108
5 changed files with 64 additions and 2 deletions

View File

@@ -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
View 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"
}
}

View File

@@ -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:

View File

@@ -13,3 +13,4 @@
spawner spawner
user user
services.auth services.auth
rest

38
docs/source/api/rest.md Normal file
View 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