<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>retour d&rsquo;expérience &#8211; Delphine MALASSINGNE</title>
	<atom:link href="https://articles.nissone.com/tag/retour-dexperience/feed/" rel="self" type="application/rss+xml" />
	<link>https://articles.nissone.com</link>
	<description></description>
	<lastBuildDate>Mon, 06 Jan 2014 17:10:16 +0000</lastBuildDate>
	<language>fr-FR</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.7.1</generator>
	<item>
		<title>Bonnes pratiques des API – Compte-rendu</title>
		<link>https://articles.nissone.com/2014/01/bonnes-pratiques-api-compte-rendu/</link>
					<comments>https://articles.nissone.com/2014/01/bonnes-pratiques-api-compte-rendu/#comments</comments>
		
		<dc:creator><![CDATA[Delphine Malassingne]]></dc:creator>
		<pubDate>Mon, 06 Jan 2014 15:00:48 +0000</pubDate>
				<category><![CDATA[[Compte-rendu]]]></category>
		<category><![CDATA[Le monde du web]]></category>
		<category><![CDATA[api]]></category>
		<category><![CDATA[bonnes pratiques]]></category>
		<category><![CDATA[conférence]]></category>
		<category><![CDATA[Paris Web 2013]]></category>
		<category><![CDATA[retour d'expérience]]></category>
		<guid isPermaLink="false">http://articles.nissone.com/?p=2118</guid>

					<description><![CDATA[Compte-rendu de la conférence d'Éric Daspet à Paris Web 2013 (Paris, octobre 2013) sur les bonnes pratiques des API.]]></description>
										<content:encoded><![CDATA[<p>Pour les besoin de mon projet Spoiled People (voir <a title="Projet de liste cadeaux sur GitHub" href="http://articles.nissone.com/2013/11/projet-liste-cadeaux-github/">Projet de liste cadeaux sur GitHub</a>), je dois monter en compétence côté API. Je suis allé voir du côté de la conférence « Bonnes pratiques des API ».</p>
<p>Cette conférence de 15 petites minutes est un retour d&rsquo;expérience, y compris sur les ratés.</p>
<p>La première leçon qu&rsquo;<a href="http://eric.daspet.name/">Éric Daspet</a> a appris et nous transmet concerne la littérature et la pratique. Sans critiquer la littérature, son constat a été que d&rsquo;un point de vue pragmatique, il vaut mieux s&rsquo;adapter aux envies des utilisateurs (les développeurs).</p>
<p><img fetchpriority="high" decoding="async" class="aligncenter size-full wp-image-2123" alt="Eric Daspet - Paris Web 2013 - Photo Brice Favre" src="http://articles.nissone.com/wp-content/uploads/2014/01/eric-daspet.jpg" width="480" height="210" srcset="https://articles.nissone.com/wp-content/uploads/2014/01/eric-daspet.jpg 480w, https://articles.nissone.com/wp-content/uploads/2014/01/eric-daspet-300x131.jpg 300w" sizes="(max-width: 480px) 100vw, 480px" /></p>
<h2>Les recettes à suivre</h2>
<p>Voici une première liste de conseils issus de cette conférence.</p>
<h3>Internationalisation</h3>
<ul>
<li>Toujours mettre des heures et non juste une date<br />
Pas GMT mais en mettant un fuseau horaire que vous allez interpréter dans chaque paramètre)<br />
Voir le <a href="http://articles.nissone.com/2014/01/bonnes-pratiques-api-compte-rendu/#comments">commentaire d&rsquo;Éric ci-dessous</a>.</li>
<li>Attention aux langues : anticiper la possibilité d&rsquo;avoir plusieurs langues, utiliser UTF-8 (et non de l&rsquo;ISO).</li>
</ul>
<h3>Pagination</h3>
<ul>
<li>L&rsquo;offset sont de fausses bonnes idées.</li>
<li>Trier les données par ordre (alphabétique, de date, d&rsquo;arrivée,&#8230;) et utiliser « after | before » (plus ancien ou plus récent que tel item)</li>
<li>Rendre la pagination obligatoire.</li>
<li>Mettre des limites de taille avec une profondeur maximum</li>
</ul>
<p>Un bon exemple : Twitter</p>
<h3>Versionnement</h3>
<p>Même si dans la littérature, le versionnement peut être vu comme une mauvaise pratique, en l&rsquo;état, nous ne sommes pas forcément prêt à nous en passer. Partir du principe qu&rsquo;on va se planter et, alors, qu&rsquo;on fera une V2 plutôt que mettre des bouts de sparadrap.</p>
<ul>
<li>Prévoir un /v1 en bout d&rsquo;URL dès le début</li>
</ul>
<p>(NB : Le versionning dans les en-têtes n&rsquo;est pas assez simple et ne sera pas pratique pour vos utilisateurs et donc ne servira pas)</p>
<h3>Sécurité</h3>
<ul>
<li>HTTP Basic Oauth</li>
<li>+ SSL</li>
<li>imposer HTTPS</li>
<li>Ne pas permettre le SSL désactivé dans le SDK (qui est recommandé)</li>
<li>Clé d&rsquo;API : savoir à tout moment qui fait la requête. Prévoyez-la.</li>
</ul>
<h3>Structure</h3>
<ul>
<li>Faites de l&rsquo;hypermédia mais ça ne suffit pas.</li>
<li>Vos adresses doivent être « bidouillables » de façon qu&rsquo;elles soient prédictives.</li>
<li>Une adresse doit ressembler à un nom de fichier : pas de caractères spéciaux encodés, que des minuscules, pas de caractères accentués.</li>
<li>Réduire la hiérarchie aux maximum (3 semble être la bonne pratique).</li>
</ul>
<h2>La conclusion</h2>
<p>La clé :</p>
<ul>
<li>En faire peu.</li>
<li>Ouvrir un maximum de champs pour plus tard.</li>
<li>Faire simple.</li>
<li>Utiliser les standard existants.</li>
<li>Penser pragmatique.</li>
</ul>
<div class="zonePlus"><a href="http://www.paris-web.fr/2013/conferences/bonnes-pratiques-des-api.php">Vidéo de la conférence</a></div>
<div class="zonePlus"><a href="http://fr.slideshare.net/edaspet/bonnes-pratiques-api-paris-web-2013">Diaporama de la conférence</a><br />
NB : Le diaporama contient 10 bonnes pratiques supplémentaires en page 11.</div>
<div class="zonePlus">Photo <a href="http://www.flickr.com/photos/bricef">Brice Favre</a></div>
]]></content:encoded>
					
					<wfw:commentRss>https://articles.nissone.com/2014/01/bonnes-pratiques-api-compte-rendu/feed/</wfw:commentRss>
			<slash:comments>2</slash:comments>
		
		
			</item>
	</channel>
</rss>
