151 lines
9.1 KiB
HTML
151 lines
9.1 KiB
HTML
<!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>
|