Bonnes pratiques des API
eric.daspet.name
www.tea-ebook.com
SOAP(hahaha!)
Enveloppe
REST
Direct HTTP
Media type
HATEOAS
Hypermedia
Relations
Links
Pragmatisme
Utilisateur
Bidouilleur
Compréhension
Raccourcis
Littérature
Simplicité
I18N
Dates
Heures
Locales GMT
Fuseau horaire
Langues
UTF8
ISO
Pagination
offset + quantité
after | before
Optionnel
Obligatoire
Cache
Limites
Limites2
Versionnement
imParfait
Erreurs
Évolution
Évolution2
Compatibilité
Refonte
Refonte!
/v2/…
Sécurité
Fait maison
HTTP Basic
Oauth /!
HTTPS
SSL / TLS
Désactivable
Clef d’API
Structure
Découverte par
(Hypermedia)
Bidouillables
Prédictibles
Libres
Sans surprise
(/[a-z0-9-]+)+(.[a-z]+)?
/collection...
En faire peu
…en ouvrant les possibles
Enrichir dans un second temps
SIMPLE, Standard, Pragmatique
Questions ? Débat ? Dés...
Images réutilisées
sous licence Creative Commons
http://www.flickr.com/photos/mctumshie/8016134432/ par Andrew Smith sous ...
1. Fournir un SDK + un générateur d’exemples (ex: Twilio)
2. Fuir l’optionnel et le paramétrable, rendre obligatoire et ex...
En faire peu
…en ouvrant les possibles
Enrichir dans un second temps
SIMPLE, Standard, Pragmatique
Questions ? Débat ? Dés...
Upcoming SlideShare
Loading in...5
×

Bonnes pratiques API - Paris Web 2013

1,809

Published 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 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.

Published in: Technology
0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
1,809
On Slideshare
0
From Embeds
0
Number of Embeds
7
Actions
Shares
0
Downloads
25
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide

Bonnes pratiques API - Paris Web 2013

  1. 1. Bonnes pratiques des API eric.daspet.name www.tea-ebook.com
  2. 2. SOAP(hahaha!) Enveloppe REST Direct HTTP Media type HATEOAS Hypermedia Relations Links
  3. 3. Pragmatisme Utilisateur Bidouilleur Compréhension Raccourcis Littérature Simplicité
  4. 4. I18N Dates Heures Locales GMT Fuseau horaire Langues UTF8 ISO
  5. 5. Pagination offset + quantité after | before Optionnel Obligatoire Cache Limites Limites2
  6. 6. Versionnement imParfait Erreurs Évolution Évolution2 Compatibilité Refonte Refonte! /v2/…
  7. 7. Sécurité Fait maison HTTP Basic Oauth /! HTTPS SSL / TLS Désactivable Clef d’API
  8. 8. Structure Découverte par (Hypermedia) Bidouillables Prédictibles Libres Sans surprise (/[a-z0-9-]+)+(.[a-z]+)? /collection/item/lien
  9. 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. 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. 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. 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
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×