\documentclass[a5paper]{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc} 
\usepackage{amsmath}
\usepackage{amssymb}
\usepackage{ngerman}
\usepackage{graphicx}
\usepackage{hyperref}
\usepackage{listings}
\usepackage{parskip}
\setlength{\parindent}{0pt}
\title{Pixelserver2 API Reference}
\author{Andreas}
\begin{document}
\maketitle
\tableofcontents
\newpage
\section{Allgemeines}
Der Pixelserver verwendet eine HTTP API. Einige Funktionen benutzen JSON zur Datenübertragung.

In Standardkonfiguration startet der Pixelserver unter \url{http://localhost:8000/}.
\section{API}
\subsection{GET /apps/list}
Gibt die Liste aller \textbf{App}s zurück. Jede \textbf{App} ist ein Objekt mit folgenden Attributen:
\begin{itemize}
	\item \textbf{name} (string): Der Name der App, der für alle anderen API-Aufrufe verwendet wird.
	\item \textbf{guiname} (string): Der Name unter dem die App für Benutzer angezeigt wird. Dieser wird intern ansonsten nicht verwendet.
	\item \textbf{persistatent} (bool): Dies sagt aus, ob die App im Hintergrund läuft. In diesem Fall können keine Parameter an die App übergeben werden.
\end{itemize}

\newpage
\textbf{Beispiel:} GET \url{http://localhost:8000/apps/list}:
\begin{lstlisting}[frame=single, basicstyle=\small] 
[
	{"name": "swifthohenberg", 
	 "guiname": "Structure formation", 
	 "persistent": false}, 
	{"name": "flicker", 
	 "guiname": "Flicker", 
	 "persistent": false}
]
\end{lstlisting}
\subsection{GET /apps/start/<name>}
Startet die App <name> mit leerem Parameter. Es wird \textit{ok} oder \textit{not\_found} zurückgegeben.

\textbf{Beispiel:} GET \url{http://localhost:8000/apps/start/swifthohenberg}:
\begin{lstlisting}[frame=single, basicstyle=\small] 
ok
\end{lstlisting}

\subsection{POST /apps/start/<name>}
Startet die App <name>. Der Parameter wird per Post als HTML Formular unter dem Namen \textit{param} übergeben.Es wird \textit{ok} oder \textit{not\_found} zurückgegeben.

\textbf{Beispiel:} POST \url{http://localhost:8000/apps/start/swifthohenberg}:
\begin{lstlisting}[frame=single, basicstyle=\small] 
ok
\end{lstlisting}
\subsection{GET /apps/start/<name>/<param>}
Startet die App <name> mit dem Parameter <param>.Es wird \textit{ok} oder \textit{not\_found} zurückgegeben.

\textbf{Beispiel:} GET \url{http://localhost:8000/apps/start/flicker/33}:
\begin{lstlisting}[frame=single, basicstyle=\small] 
ok
\end{lstlisting}
\subsection{GET /apps/running}
Gibt den Name der aktuell laufenden App zurück.

\textbf{Beispiel:} GET \url{http://localhost:8000/apps/running}:
\begin{lstlisting}[frame=single, basicstyle=\small] 
flicker
\end{lstlisting}
\end{document}