Bonnes pratiques API - Paris Web 2013
Upcoming SlideShare
Loading in...5
×

Like this? Share it with your network

Share

Bonnes pratiques API - Paris Web 2013

  • 2,138 views
Uploaded on

L'API est un peu le Graal des données mais elle a un défaut majeur : une fois publiée, vous n'en contrôlez plus les clients, et faire évoluer les bases n'est pas évident. Ce que vous construisez ...

L'API est un peu le Graal des données mais elle a un défaut majeur : une fois publiée, vous n'en contrôlez plus les clients, et faire évoluer les bases n'est pas évident. Ce que vous construisez est là pour longtemps. Quelles sont les retours d'expériences et bonnes pratiques pour ne pas se prendre les pieds dans le tapis ?

Vous avez certainement déjà entendu parler de REST, mais les choses sont plus complexes que ça. Comment gérer les évolutions et les versions de l'API ? Les formats en entrée et en sortie ? Les variations et paramètres d'une même ressource ? Les relations entre ressources ? La sécurité ? L'authentification ? La gestion des erreurs ? La pagination ? L'i18n et l10n ? Qu'est-ce que l'hypermedia ?

Plus généralement, nous partons avec pour objectif premier de concevoir une API le plus tôt possible, avec des bases solides mais les plus simples possible.

More in: Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads

Views

Total Views
2,138
On Slideshare
1,928
From Embeds
210
Number of Embeds
4

Actions

Shares
Downloads
13
Comments
0
Likes
1

Embeds 210

https://twitter.com 179
http://lanyrd.com 27
http://we.talkspirit.com.bstalkplus.jc.onu 3
http://www.feedspot.com 1

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. Bonnes pratiques des API eric.daspet.name www.tea-ebook.com
  • 2. SOAP(hahaha!) Enveloppe REST Direct HTTP Media type HATEOAS Hypermedia Relations Links
  • 3. Pragmatisme Utilisateur Bidouilleur Compréhension Raccourcis Littérature Simplicité
  • 4. I18N Dates Heures Locales GMT Fuseau horaire Langues UTF8 ISO
  • 5. Pagination offset + quantité after | before Optionnel Obligatoire Cache Limites Limites2
  • 6. Versionnement imParfait Erreurs Évolution Évolution2 Compatibilité Refonte Refonte! /v2/…
  • 7. Sécurité Fait maison HTTP Basic Oauth /! HTTPS SSL / TLS Désactivable Clef d’API
  • 8. Structure Découverte par (Hypermedia) Bidouillables Prédictibles Libres Sans surprise (/[a-z0-9-]+)+(.[a-z]+)? /collection/item/lien
  • 9. En faire peu …en ouvrant les possibles Enrichir dans un second temps SIMPLE, Standard, Pragmatique Questions ? Débat ? Désaccord ? -> informelles eric.daspet.name www.tea-ebook.com
  • 10. Images réutilisées sous licence Creative Commons http://www.flickr.com/photos/mctumshie/8016134432/ par Andrew Smith sous CC-BY-NC-ND http://www.flickr.com/photos/jstar/32486696/ par J. Star sous CC-BY-NC-SA http://geek-and-poke.com/geekandpoke/2013/6/14/insulting-made-easy par Geek and Poke, sous CC-BY http://www.flickr.com/photos/adamcohn/3076525070/ par Adam Cohn sous CC-BY-NC-ND http://www.flickr.com/photos/clintjcl/5940857187/ par Rev. Xanatos Satanicos sous CC-NC-SA http://www.flickr.com/photos/designwallah/4885177922/ par Francis Mariani sous CC-NC-ND http://www.flickr.com/photos/leebennett/3181855130/ by Lee Bennett sous CC-BY-NC-SA http://www.flickr.com/photos/leamarzloff/3204021240/ par Lea Marzloff sous CC-BY-NC-ND http://www.flickr.com/photos/hellocatfood/5799842139/ par Antonio Roberts sous CC-BY-NC-SA http://www.flickr.com/photos/janisbrass/8078718025/ par Memaxmarz sous CC-BY-NC-ND http://www.flickr.com/photos/hellocatfood/5799842139/ par Antonio Roberts sous CC-BY-NC-SA
  • 11. 1. Fournir un SDK + un générateur d’exemples (ex: Twilio) 2. Fuir l’optionnel et le paramétrable, rendre obligatoire et explicite 3. Aucune information essentielle dans les entêtes 4. Paramètres génériques, valables sur toute l’API 5. Numéroter les erreurs avec un identifiant unique à tous vos projets 6. Ne pas se fier aux identifiants uniques externes 7. Mettre ses identifiants principaux au format texte 8. Penser au cache (if-modified-since, etag) 9. Toujours utiliser un sous-objet, pas de libellé ou code en direct 10. Utiliser un domaine distinct pour l’API
  • 12. En faire peu …en ouvrant les possibles Enrichir dans un second temps SIMPLE, Standard, Pragmatique Questions ? Débat ? Désaccord ? -> informelles eric.daspet.name www.tea-ebook.com