diff options
| -rwxr-xr-x | lib/Travelynx.pm | 1 | ||||
| -rwxr-xr-x | lib/Travelynx/Controller/Api.pm | 6 | ||||
| -rw-r--r-- | templates/account.html.ep | 69 | ||||
| -rw-r--r-- | templates/api_documentation.html.ep | 85 | ||||
| -rw-r--r-- | templates/landingpage.html.ep | 2 | 
5 files changed, 96 insertions, 67 deletions
| diff --git a/lib/Travelynx.pm b/lib/Travelynx.pm index 8e10896..0ded6bb 100755 --- a/lib/Travelynx.pm +++ b/lib/Travelynx.pm @@ -1719,6 +1719,7 @@ sub startup {  	$r->get('/')->to('traveling#homepage');  	$r->get('/about')->to('static#about'); +	$r->get('/api')->to('api#documentation');  	$r->get('/impressum')->to('static#imprint');  	$r->get('/imprint')->to('static#imprint');  	$r->get('/api/v0/:user_action/:token')->to('api#get_v0'); diff --git a/lib/Travelynx/Controller/Api.pm b/lib/Travelynx/Controller/Api.pm index a0b8e07..889a0e3 100755 --- a/lib/Travelynx/Controller/Api.pm +++ b/lib/Travelynx/Controller/Api.pm @@ -8,6 +8,12 @@ sub make_token {  	return create_uuid_as_string(UUID_V4);  } +sub documentation { +	my ($self) = @_; + +	$self->render('api_documentation'); +} +  sub get_v0 {  	my ($self) = @_; diff --git a/templates/account.html.ep b/templates/account.html.ep index fc4387d..38ffecb 100644 --- a/templates/account.html.ep +++ b/templates/account.html.ep @@ -66,10 +66,10 @@  	</div>  </div> +<h2>API</h2>  % my $token = get_api_token();  <div class="row">  	<div class="col s12"> -	<h2>API</h2>  		<p>  			Die folgenden API-Token erlauben den passwortlosen automatisierten Zugriff auf  			API-Endpunkte.  Bitte umsichtig behandeln – sobald ein Token gesetzt @@ -150,76 +150,13 @@  	</div>  </div> -% my $api_root = $self->url_for('/api/v1')->to_abs->scheme('https'); -<h3>Status</h3>  <div class="row">  	<div class="col s12"> -		<p style="font-family: Monospace;"> -			% if ($token->{status}) { -				curl <%= $api_root %>/status/<%= $acc->{id} %>-<%= $token->{status} // 'TOKEN' %> -			% } -			% else { -				curl <%= $api_root %>/status/TOKEN -			% } -		</p> -		<p> -		Beispiel / Layout: -		</p> -		<p style="font-family: Monospace;"> -		{<br/> -			"deprecated" : true / false, (falls true: Diese API-Version wird irgendwann abgeschaltet, bitte auf eine neue umsteigen)<br/> -			"checkedIn" : true / false,<br/> -			"fromStation" : { (letzter Checkin)<br/> -				"name" : "Essen Hbf",<br/> -				"ds100" : "EE",<br/> -				"uic" : 8000098,<br/> -				"latitude" : 51.451355,<br/> -				"longitude" : 7.014793,<br/> -				"scheduledTime": 1556083680,<br/> -				"realTime": 1556083680,<br/> -			},<br/> -			"fromStation" : { (zugehöriger Checkout. Wenn noch nicht eingetragen, sind alle Felder null)<br/> -				"name" : "Essen Stadtwald",<br/> -				"ds100" : "EESA",<br/> -				"uic" : 8001896,<br/> -				"latitude" : 51.422853,<br/> -				"longitude" : 7.023296,<br/> -				"scheduledTime": 1556083980, (ggf. null)<br/> -				"realTime": 1556083980, (ggf. null)<br/> -			},<br/> -			"train" : {<br/> -			"type" : "S", (aktueller / letzter Zugtyp)<br/> -			"line" : "6", (Linie als String, nicht immer numerisch, ggf. null)<br/> -			"no" : "30634", (Zugnummer als String)<br/> -			"id" : "7512500863736016593", (IRIS-spezifische Zug-ID)<br/> -			},<br/> -			"actionTime" : 1234567, (UNIX-Timestamp des letzten Checkin/Checkout)<br/> -		} -		</p> -		<p> -			Im Fehlerfall: <span style="font-family: Monospace;">{ "error" : "Begründung" }</span> -		</p> -	</div> -</div> -<!-- -<h3>History</h3> -<div class="row"> -	<div class="col s12"> -		<p> -			Coming soon. -		</p> +		<a href="/api">Dokumentation</a>  	</div>  </div> -<h3>Travel</h3> -<div class="row"> -	<div class="col s12"> -		<p> -			Ein- und Auschecken per API. Coming soon. -		</p> -	</div> -</div> ---> +  <h2>Export</h2>  <div class="row"> diff --git a/templates/api_documentation.html.ep b/templates/api_documentation.html.ep new file mode 100644 index 0000000..dd59be6 --- /dev/null +++ b/templates/api_documentation.html.ep @@ -0,0 +1,85 @@ +% my $api_root = $self->url_for('/api/v1')->to_abs->scheme('https'); +% my $token = {}; +% my $uid; +% if (is_user_authenticated()) { +	% $uid = current_user()->{id}; +	% $token = get_api_token(); +% } + +<h1>API</h1> + +<div class="row"> +	<div class="col s12"> +		Die folgenden API-Endpunkte werden aktuell unterstützt. +	</div> +</div> + +<h2>Status</h2> +<div class="row"> +	<div class="col s12"> +		<p style="font-family: Monospace;"> +			% if ($token->{status}) { +				curl <%= $api_root %>/status/<%= $uid %>-<%= $token->{status} // 'TOKEN' %> +			% } +			% else { +				curl <%= $api_root %>/status/TOKEN +			% } +		</p> +		<p> +		Beispiel / Layout: +		</p> +		<p style="font-family: Monospace;"> +		{<br/> +			"deprecated" : true / false, (falls true: Diese API-Version wird irgendwann abgeschaltet, bitte auf eine neue umsteigen)<br/> +			"checkedIn" : true / false,<br/> +			"fromStation" : { (letzter Checkin)<br/> +				"name" : "Essen Hbf",<br/> +				"ds100" : "EE",<br/> +				"uic" : 8000098,<br/> +				"latitude" : 51.451355,<br/> +				"longitude" : 7.014793,<br/> +				"scheduledTime": 1556083680,<br/> +				"realTime": 1556083680,<br/> +			},<br/> +			"fromStation" : { (zugehöriger Checkout. Wenn noch nicht eingetragen, sind alle Felder null)<br/> +				"name" : "Essen Stadtwald",<br/> +				"ds100" : "EESA",<br/> +				"uic" : 8001896,<br/> +				"latitude" : 51.422853,<br/> +				"longitude" : 7.023296,<br/> +				"scheduledTime": 1556083980, (ggf. null)<br/> +				"realTime": 1556083980, (ggf. null)<br/> +			},<br/> +			"train" : {<br/> +			"type" : "S", (aktueller / letzter Zugtyp)<br/> +			"line" : "6", (Linie als String, nicht immer numerisch, ggf. null)<br/> +			"no" : "30634", (Zugnummer als String)<br/> +			"id" : "7512500863736016593", (IRIS-spezifische Zug-ID)<br/> +			},<br/> +			"actionTime" : 1234567, (UNIX-Timestamp des letzten Checkin/Checkout)<br/> +		} +		</p> +		<p> +			Im Fehlerfall: <span style="font-family: Monospace;">{ "error" : "Begründung" }</span> +		</p> +	</div> +</div> +<!-- +<h3>History</h3> +<div class="row"> +	<div class="col s12"> +		<p> +			Coming soon. +		</p> +	</div> +</div> + +<h3>Travel</h3> +<div class="row"> +	<div class="col s12"> +		<p> +			Ein- und Auschecken per API. Coming soon. +		</p> +	</div> +</div> +--> diff --git a/templates/landingpage.html.ep b/templates/landingpage.html.ep index 0f293d9..2d531fc 100644 --- a/templates/landingpage.html.ep +++ b/templates/landingpage.html.ep @@ -95,7 +95,7 @@  				<ul>  					<li>Protokoll von Fahrplan- und Echtzeitdaten an Start- und  						Zielbahnhof</li> -					<li>API zum automatisierten Auslesen des aktuellen Status</li> +					<li><a href="/api">API</a> zum automatisierten Auslesen des aktuellen Status</li>  					<li>Statistiken über Reisezeiten und Verspätungen</li>  				</ul>  			</p> | 
