StrasbourgParkAPI/docs/index.html

151 lines
9.1 KiB
HTML
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!DOCTYPE html>
<html lang="en">
<head>
<title>StrasbourgParkAPI Reference</title>
<link rel="stylesheet" type="text/css" href="css/jazzy.css" />
<link rel="stylesheet" type="text/css" href="css/highlight.css" />
<meta charset='utf-8'>
<script src="js/jquery.min.js" defer></script>
<script src="js/jazzy.js" defer></script>
<script src="js/lunr.min.js" defer></script>
<script src="js/typeahead.jquery.js" defer></script>
<script src="js/jazzy.search.js" defer></script>
</head>
<body>
<a title="StrasbourgParkAPI Reference"></a>
<header>
<div class="content-wrapper">
<p><a href="index.html">StrasbourgParkAPI Docs</a> (100% documented)</p>
<p class="header-right"><a href="https://github.com/yageek/StrasbourgParkAPI"><img src="img/gh.png" alt="GitHub"/>View on GitHub</a></p>
<div class="header-right">
<form role="search" action="search.json">
<input type="text" placeholder="Search documentation" data-typeahead>
</form>
</div>
</div>
</header>
<div class="content-wrapper">
<p id="breadcrumbs">
<a href="index.html">StrasbourgParkAPI Reference</a>
<img id="carat" src="img/carat.png" alt=""/>
StrasbourgParkAPI Reference
</p>
</div>
<div class="content-wrapper">
<nav class="sidebar">
<ul class="nav-groups">
<li class="nav-group-name">
<a href="Classes.html">Classes</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a href="Classes/ParkingAPIClient.html">ParkingAPIClient</a>
</li>
</ul>
</li>
<li class="nav-group-name">
<a href="Enums.html">Enumerations</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a href="Enums.html#/s:17StrasbourgParkAPI6EitherO">Either</a>
</li>
<li class="nav-group-task">
<a href="Enums/ParkingAPIClientError.html">ParkingAPIClientError</a>
</li>
</ul>
</li>
<li class="nav-group-name">
<a href="Protocols.html">Protocols</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a href="Protocols/CancelableRequest.html">CancelableRequest</a>
</li>
</ul>
</li>
<li class="nav-group-name">
<a href="Structs.html">Structures</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a href="Structs/LocationOpenData.html">LocationOpenData</a>
</li>
<li class="nav-group-task">
<a href="Structs/LocationResponse.html">LocationResponse</a>
</li>
<li class="nav-group-task">
<a href="Structs/ParkingLocation.html">ParkingLocation</a>
</li>
<li class="nav-group-task">
<a href="Structs/ParkingLocation/Manager.html"> Manager</a>
</li>
<li class="nav-group-task">
<a href="Structs/ParkingState.html">ParkingState</a>
</li>
<li class="nav-group-task">
<a href="Structs/ParkingState/Status.html"> Status</a>
</li>
<li class="nav-group-task">
<a href="Structs/StatusOpenData.html">StatusOpenData</a>
</li>
<li class="nav-group-task">
<a href="Structs.html#/s:17StrasbourgParkAPI14StatusResponseV">StatusResponse</a>
</li>
</ul>
</li>
</ul>
</nav>
<article class="main-content">
<section>
<section class="section">
<h1 id='strasbourgparkapi' class='heading'>StrasbourgParkAPI</h1>
<p>A simple swift package giving access to the Strasbourg open data for parking (<a href="https://data.strasbourg.eu/explore/dataset/parkings/table/">location API</a> and <a href="https://data.strasbourg.eu/explore/dataset/occupation-parkings-temps-reel/table/">availability API</a>)</p>
<p>Reference can be found <a href="https://yageek.github.io/StrasbourgParkAPI/">here</a>.</p>
<h2 id='usage' class='heading'>Usage</h2>
<p>You can interact with the framework using callback closures responses, Combine or async methods</p>
<h3 id='callback-closures' class='heading'>Callback closures</h3>
<pre class="highlight swift"><code><span class="k">let</span> <span class="nv">client</span> <span class="o">=</span> <span class="kt">ParkingAPIClient</span><span class="p">()</span>
<span class="n">client</span><span class="o">.</span><span class="n">getLocations</span> <span class="p">{</span> <span class="p">(</span><span class="n">result</span><span class="p">)</span> <span class="k">in</span>
<span class="k">switch</span> <span class="n">result</span> <span class="p">{</span>
<span class="k">case</span> <span class="o">.</span><span class="nf">success</span><span class="p">(</span><span class="k">let</span> <span class="nv">locations</span><span class="p">):</span>
<span class="nf">print</span><span class="p">(</span><span class="s">"Locations: </span><span class="se">\(</span><span class="n">locations</span><span class="se">)</span><span class="s">"</span><span class="p">)</span>
<span class="k">case</span> <span class="o">.</span><span class="nf">failure</span><span class="p">(</span><span class="k">let</span> <span class="nv">error</span><span class="p">):</span>
<span class="nf">print</span><span class="p">(</span><span class="s">"Error during the download: </span><span class="se">\(</span><span class="n">error</span><span class="se">)</span><span class="s">"</span><span class="p">)</span>
<span class="p">}</span>
<span class="p">}</span>
</code></pre>
<h3 id='combine' class='heading'>Combine</h3>
<pre class="highlight swift"><code><span class="k">let</span> <span class="nv">client</span> <span class="o">=</span> <span class="kt">ParkingAPIClient</span><span class="p">()</span>
<span class="n">client</span><span class="o">.</span><span class="nf">getLocationsPublisher</span><span class="p">()</span><span class="o">.</span><span class="n">sink</span> <span class="p">{</span> <span class="n">result</span> <span class="k">in</span>
<span class="k">if</span> <span class="k">case</span> <span class="o">.</span><span class="nf">failure</span><span class="p">(</span><span class="k">let</span> <span class="nv">error</span><span class="p">)</span> <span class="o">=</span> <span class="n">result</span> <span class="p">{</span>
<span class="nf">print</span><span class="p">(</span><span class="s">"Error: </span><span class="se">\(</span><span class="n">result</span><span class="se">)</span><span class="s">"</span><span class="p">)</span>
<span class="p">}</span>
<span class="p">}</span> <span class="nv">receiveValue</span><span class="p">:</span> <span class="p">{</span> <span class="n">result</span> <span class="k">in</span>
<span class="nf">print</span><span class="p">(</span><span class="s">"Response: </span><span class="se">\(</span><span class="n">result</span><span class="se">)</span><span class="s">"</span><span class="p">)</span>
<span class="p">}</span>
</code></pre>
<h3 id='async' class='heading'>async</h3>
<pre class="highlight swift"><code><span class="k">let</span> <span class="nv">client</span> <span class="o">=</span> <span class="kt">ParkingAPIClient</span><span class="p">()</span>
<span class="k">do</span> <span class="p">{</span>
<span class="k">let</span> <span class="nv">response</span> <span class="o">=</span> <span class="k">try</span> <span class="n">await</span> <span class="n">client</span><span class="o">.</span><span class="nf">fetchLocations</span><span class="p">()</span>
<span class="nf">print</span><span class="p">(</span><span class="s">"Response: </span><span class="se">\(</span><span class="n">response</span><span class="se">)</span><span class="s">"</span><span class="p">)</span>
<span class="p">}</span> <span class="k">catch</span> <span class="k">let</span> <span class="nv">error</span> <span class="p">{</span>
<span class="nf">print</span><span class="p">(</span><span class="s">"Error: </span><span class="se">\(</span><span class="n">error</span><span class="se">)</span><span class="s">"</span><span class="p">)</span>
<span class="p">}</span>
</code></pre>
</section>
</section>
<section id="footer">
<p>© 2020 <a class="link" href="https://github.com/yageek" target="_blank" rel="external noopener">Yannick Heinrich</a> under <a class="link" href="https://github.com/yageek/siesta/blob/StrasbourgParkAPI/LICENSE" target="_blank" rel="external noopener">open source license</a>.</p>
<p>Generated by <a class="link" href="https://github.com/realm/jazzy" target="_blank" rel="external noopener">jazzy ♪♫ v0.14.2</a>, a <a class="link" href="https://realm.io" target="_blank" rel="external noopener">Realm</a> project.</p>
</section>
</article>
</div>
</body>
</html>