Aujourd'hui je vais vous présenter un framework PHP permetant de créer une API REST, il s'agit de Slim Framework. Je l'ai utilisé dans le cadre d'un projet perso, peut-être un jour disponible sur mon site… Il s'agit un outil très simple à mettre en place et à prendre en main, notamment grâce à sa documentation claire et complète.

Commençons par le début : que signifie REST ? "Representational State Transfer" est un type d’architecture permettant de mettre en place des webservices, il repose sur le protocole HTTP. Le principe est simple, le programmeur manipule directement les méthodes POST, PUT, GET et DELETE pour effectuer les actions de CRUD (Create, Read, Update, Delete):

  • création : POST
  • modification : PUT
  • lecture : GET
  • suppresssion : DELETE

Revenons à notre mouton "Slim", le snippet présent sur la page d'accueil du site donne le ton, ces quelques lignes de code suffisent pour créer un web service :

<?php
$app = new \Slim\Slim(); //initialisation de l'application
$app->get('/hello/:name', function ($name) { //route accessible via l'URL "http://nom_de_domaine_api/hello/toto"
    echo "Hello, $name"; // renvoie "Hello toto"
});
$app->run(); //lance l'application

Vous trouverez ci-dessous la liste des principales fonctionnalités :

  • encryption AES-256
  • authentification HTTP
  • gestion d'erreurs
  • mode debbug
  • cache
  • PDO
  • templating (Twig, Smarty)
  • sessions (cookies)
  • middleware

Si vous avez à mettre en place une API REST, je vous conseil de jeter un oeil à Slim. De mon point de vue, voici les principaux avantages de ce framework :

  • facile à prendre en main
  • léger
  • performant 

J'espère que cet article vous aura permis de découvrir un nouvel outil. N'hésitez pas à laisser un commentaire si vous avez eu l'occasion de travailler avec, donnez-moi votre avis.

Chose promise, chose due ! Voici un nouvel article consacré aux conférences du BLEND Web Mix 2013.

Concevoir son API web

Speaker : Eric Dapset
Support de présentation : http://fr.slideshare.net/edaspet/blend-web-mix-2013-concevoir-son-api

Une présentation très "imagée" (cf support), basée sur des retours d'expériences. Eric nous a présenté une liste de bonnes pratiques à appliquer  :

  • Mettre en place un bac à sable
  • Développer des exemples d'utilisation : cas pratiques, pas à pas (plus utilie et interactif qu'une docuentation)
  • Commencer par une API simple, l'enrichir dans un second temps
  • Utiliser du SSL
  • Encoder en utf-8
  • Utiliser le format date/heure avec fuseau horaire (timestamp)
  • Limiter les versions (créer uniquement des versions majeurs)
  • Préciser le numéro de version dans l'URL (ex: http://monapi.fr/v1/methode)
  • Utiliser une authentification HTTP basic (+HTTPS)
  • Utiliser les codes d'erreur HTTP
  • Préférer le format XML au JSON (plus simple à faire évoluer)
  • Utiliser la compression gzip et le cache (côté Apache par exemple)

Tour d'horizon de Node.js

Speaker : Christophe Porteneuve
Support de présentation : http://delicious-insights.com/node-blend/#/

Une conférence très "vivante", pleine de trolls ani-java :). Personnelement, c'était ma première approche de Node.js, cette techno à l'air vraiment performante et intéressante. Je pense que je ne vais pas tarder à mettre les mains dans le bouzin !

Cette conférence m'a tellement intéressé que je n'ai malheureusement pas eu le temps de prendre de note… Heureusement, le support est là 😉

La technique au service de l'entreprenariat

Speaker : Maxime Valette

Maxime Valette nous a ici présenté sa vision du business en s'appuyant sur son parcours. Voici les points ayant retenu mon attention :

  • Bien choisir son/ses associé(s)
  • Etre passionné
  • Avoir de l'ambition et ne pas craindre l'échec
  • "sortez boire des bières", le phases de repos sont obligatoires pour être productif, de plus certaines bonnes idées arrivent en discutant autour d'un verre
  • Etre sceptique mais jamais cynique (le pessimiste se plaint du vent l'optimiste espère qu'il va changer le réaliste ajuste ses voiles)

Pourquoi les workers queues sont-elles importantes pour dynamiser votre application web ? 

Speaker : Clément Jobeili
Support de présentation : http://dator.fr/slides/blend13/#/13

"Avez-vous déjà essayer d'importer un csv de 1 000 000 de lignes dans mysql ?" -> fail !!!
Ce type de traitement est très gourmand en temps et en ressources, il peut rapidement devenir bloquant. Heureusement les workers queues sont là ! 

Le fonctionnement est plutôt simple : un message est stocké dans une file d'attente puis traité par un "worker". Le traitement est asynchrone donc non bloquant, ce qui permet de traiter plusieurs tâches en parallèle. 

Voici les différentes solutions présentées : RabbitMQ, Resque, Beanstalk.

Dart, one language to rule them all

Speaker : Sébastien Deleuze
Support de présentation : http://fr.slideshare.net/sdeleuze/dart-mixit2013en
 

Dart est un nouveau langage mis au point par Google. Et qui dit nouveau dit "plus ou moins stable". Les applicatins actuelles codées en Dart sont principalement des prototypes, une version stable de Dart devrait dependant voir le jour très prochainement.

Sébastien Deleuze nous a ici venter les mérites de ce language :

  • simple à prendre en main 
  • nombreuses API
  • fonctionnel sous tous les environements/navigateurs (support natif ou utilisation de dart2js)
  • performant

Je pense que ça vaut le coup de s'intéresser au sujer…