Archived
49 lines
1.9 KiB
TeX
49 lines
1.9 KiB
TeX
\chapter{Routen API}
|
|
\label{cha:httpApi}
|
|
Die API für die Routenverwaltung wurde in JavaScript mit Node.js als ausführende Umgebung. Zusätzlich wurde das Framework Express genutzt. Der Quellcode der API ist mit dem Anhang \ref{cha:cd} zu finden.
|
|
\par
|
|
Die Entwicklung der API wurde aus rein funktioneller Sicht betrieben. Daher sind keine Vorkehrungen für die Sicherheit, wie eine Benutzerverwaltung, getroffen worden. Somit ist es aktuell für jeden möglich, die API zu benutzen.
|
|
\par
|
|
Im Folgenden werden die Endpunkte der API beschrieben, dabei wird die vorangestellte URI \url{https://rover.kleiax.de/api} ausgelassen. Die API nutzt für die Rückmeldung immer Nachrichten mit dem JSON-Format.
|
|
|
|
\begin{itemize}
|
|
\item Methode: GET, Endpunkt: /amount - Gibt die Anzahl aller gespeicherten Routen zurück.
|
|
\item Methode: GET, Endpunkt: /infos - Das Objekt enthält die Anzahl aller Routen, alle Routen-IDs und die Anzahl der Punkte zu jeder Route.
|
|
\item Methode: GET, Endpunkt: /<id> - Gibt das Objekt einer Route zurück, mit der <id>, der Anzahl der Punkte und den Punkten selbst.
|
|
\item Methode: POST, Endpunkt: / - Erstellt eine Route anhand der Übergabeparameter.
|
|
\item Methode: DELETE, Endpunkt: /<id> - Löscht die Route mit der <id>.
|
|
\end{itemize}
|
|
|
|
Die Routen werden auf dem Server der API in einer JSON-Datei als ein Array gespeichert. Zusätzlich zu den Endpunkten ist eine Website verfügbar, welche das Info-Objekt darstellt, um eine schnelle übersicht über die vorhanden Routen zu geben.
|
|
|
|
\pagebreak
|
|
|
|
\section{Darstellung einer Route in JSON}
|
|
|
|
Eine Route, die der Rover empfängt oder versendet, wird nach dem folgenden Muster in JSON übermittelt.
|
|
|
|
\begin{minted}[linenos, gobble=2, tabsize=2]{json}
|
|
{
|
|
"number": 5,
|
|
"amountPoints": 4,
|
|
"points": [
|
|
[
|
|
48.11111,
|
|
2.302038
|
|
],
|
|
[
|
|
48.22222,
|
|
2.302038
|
|
],
|
|
[
|
|
48.33333,
|
|
2.302038
|
|
],
|
|
[
|
|
48.44444,
|
|
2.302038
|
|
]
|
|
]
|
|
}
|
|
\end{minted}
|