VT2018 ActionHero

From air
Revision as of 18:30, 18 November 2018 by Hugo.Gros-D-Aillon (talk | contribs)
Jump to navigation Jump to search

Auteur

  • 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

Actionhero arch.png

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