VT2018 ActionHero
Auteur
- Sujet : ActionHero.js
- Enseignants : Georges-Pierre Bonneau, Didier Donsez
- Auteur de la présentation : Hugo GROS-DAILLON
- email : hugo.gros-d-aillon@etu.univ-grenoble-alpes.fr
Résumé
Le but d'ActionHero.js est de créer une boîte à outils facile à utiliser pour créer des API réutilisables et évolutives. Les clients connectés à un serveur ActionHero peuvent utiliser les différentes API ainsi que communiquer entre eux grâce à un framework de chat en temps réal intégré à la technologie.
C’est une technologie entièrement gratuite et très bien fournie en documentation. Il est donc très facile pour les utilisateurs de s’autoformer et de commencer en quelques minutes à créer des actions pour son API.
Après avoir testé cette technologie, vous n’envisagerez certainement plus de réaliser vos API différemment que avec ActionHero.js.
- Mots clés : ActionHero.js, boîte à outils, API, framework, actions
Abstract
The goal of ActionHero.js is to create an easy-to-use toolbox to create reusable and scalable APIs. Clients connected to an ActionHero server can use the different APIs as well as communicate with each other through a real time chat framework integrated with the technology.
It is a completely free technology and very well documented. It is therefore very easy for users to self-train and start creating actions for their API in a few minutes.
After testing this technology, you will certainly no longer consider building your APIs differently than with ActionHero.js.
- Keywords : ActionHero.js, toolbox, API, framework, actions
Synthèse
Introduction
ActionHero est un framework d'API pour les sockets tcp, les sockets web et les clients http. L'Objectif d'ActionHero.js est de créer une boîte à outils facile à utiliser pour créer des API réutilisables et évolutives. Les clients connectés à un serveur ActionHero peuvent utiliser les différentes API ainsi que communiquer entre eux grâce à un framework de chat en temps réal intégré à la technologie.
L'API ActionHero définit un point d'accès unique et accepte les entrées GET, POST, PUT et DELETE ainsi que les connexions persistantes via TCP ou des sockets web. Vous définissez des Actions qui gèrent les paramètres en entrée et les réponses de l'API. Les clients HTTP, HTTPS et TCP peuvent tous utiliser ces actions. L'API ActionHero n'est pas 'RESTful' (ce qui n'a pas de sens pour les connexions socket persistantes) mais peut être étendue pour l'être si vous le souhaitez.
ActionHero servira également des fichiers statiques pour vous, mais ActionHero n'est pas un serveur de'rendu' (comme express ou rails).
Démarrer
Prérequis
- NodeJS (Version 4.0.0 ou supérieure)
- Npm
- Redis
Sur OSX avec Homebrew:
brew install node
brew install redis
brew services start redis
Sur Ubuntu:
(sudo) apt-get install node
(sudo) apt-get install redis-server
redis-server --daemonize yes
Sur Windows:
[download nodeJS](https://nodejs.org/en/download)
[download redis](https://github.com/MSOpenTech/redis)
run redis.exe
Installation et exécution
mkdir ~/project && cd ~/project
npm install actionhero
npx actionhero generate
npm install
npm start
Structure de l'application générée
__tests__
Permet de faire des tests unitaires sur l'API, des exemples sont déjà présents après la génération.
actions
C'est ici que vous allez définir les actions de votre API, en suivant le principe qui est de lire dans data.params pour les paramètres donnés par le client et d’écrire dans data.response pour indiquer ce que va retourner l’API.
bin
Fichiers binaires, vide lors de la génération.
config
Fichiers de configuration de l'application ActionHero générée, ce dossier contient différents fichiers pour configurer l’api, le serveur, l’internationalisation, etc.
initializers
Ce dossier va vous permettre d’extendre les fonctionnalités de son serveur ActionHero, c’est ici par exemple qu’on se connecte a la base de données. Vide lors de la génération
locales
Contient un ensemble de fichier JSON permetant de traduire l’ensemble du contenu présent sur le serveur dans différentes langues.
log
Contient les différents fichiers de logs écrit au cours de l'activité du serveur.
node_modules
Ce sont les dépendances générées par la commande : npm install
pids
Il contient les pids-files pour les serveurs en cours d’exécution
Public
C'est ici que se trouve le contenu statique du projet comme les fichier HTML, le CSS etc.
servers
Ce dossier est là pour vous permettre de créer vos propres serveurs. Vide lors de la génération.
tasks
C'est ici que vous définirez les tâches de votre API.
Les actions
Les actions sont le coeur d’un serveur ActionHero. Pour définir une action de l’api, il n’y à presque rien à faire !
Le but est de lire dans data.params pour les paramètres donnés par le client et d’écrire dans data.response pour indiquer ce que va retourner l’API.