misc-vdeniaud/formation-api/presentation.tex

204 lines
6.3 KiB
TeX
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

\documentclass{beamer}
\usetheme{focus}
\usepackage{minted}
\usepackage{mdframed}
\setbeameroption{show notes}
\surroundwithmdframed{minted}
\AtBeginEnvironment{frame}{\setcounter{footnote}{0}}
\setbeamerfont{footnote}{size=\tiny}
\title{Formation : usage des API Publik}
\author{Valentin Deniaud}
\titlegraphic{\includegraphics[scale=0.75]{eo.pdf}}
\institute{Académie de Versailles}
\date{29/06/2021}
\begin{document}
\begin{frame}
\maketitle
\end{frame}
\begin{frame}{Sommaire}
\tableofcontents
\end{frame}
\begin{frame}[noframenumbering,plain]
Ne pas oublier de lancer l'enregistrement !
\end{frame}
\section{Introduction}
\begin{frame}{Vue d'ensemble}
\begin{itemize}
\item Pas un logiciel mais plusieurs « briques »
\item Écrites en Python/Django
\begin{itemize}
\item Mais ce n'est pas important !
\note[item]{Passer par les API permet justement d'utiliser son langage favori}
\end{itemize}
\item Reliées entre elles via
\begin{itemize}
\item API webservices
\note[item]{Et ouais, le consommateur numéro 1 des API Publik c'est Publik.}
\item Provisionning
\item SSO
\end{itemize}
\end{itemize}
\end{frame}
\begin{frame}{Les briques et leurs fonctions}
\begin{itemize}
\item w.c.s. : démarches
\note[item]{On va se concentrer sur wcs.}
\item authentic : connexion
\note[item]{Et parler un peu de l'API authentic.}
\item combo : portail
\item passerelle : connexion
\note[item]{Éventuellement un laïus sur à quel point c'est nul les connecteurs + pas le but de cette formation.}
\item chrono : prise de rendez-vous
\note[item]{L'API chrono est foisonnante mais on va pas en parler sauf cas d'usage spécifique.}
\end{itemize}
\end{frame}
\begin{frame}{Schéma général}
\includegraphics[scale=0.49]{architecture.png}
\end{frame}
\begin{frame}{Documentation utile}
\small{\url{https://doc-publik.entrouvert.com/dev/connecteurs/}}
\end{frame}
\section{Source de données}
\begin{frame}[fragile]{Présentation}
\begin{itemize}
\item Objectif : récupérer des informations depuis un SI externe
\item Dictionnaire JSON
\item Structure très simple
\note[item]{Rendre une API compatible Publik, c'est facile !}
\end{itemize}
\begin{minted}[tabsize=4]{json}
{
"err": 0,
"data": {
"text": "Donnée 1",
"id": 1,
"xxx": "clé supplémentaire"
}
}
\end{minted}
\end{frame}
\begin{frame}[fragile]{Et les erreurs ?}
\begin{minted}[tabsize=4]{json}
{
"err": 1,
"err_class": "TypeError",
"err_desc": "name must be a string",
"data": null
}
\end{minted}
\end{frame}
\begin{frame}{Utilisation dans une démarche}
\begin{itemize}
\item Alimentation d'un champ liste\footnote{\url{https://doc-publik.entrouvert.com/admin-fonctionnel/fabrique-formulaires/form-champs/champ_liste/}}
\note[item]{Exemple à base d'etherpad, genre \url{https://pad.inpt.fr/p/test-ws}}
\item Cas d'usage avancé : autocomplétion\footnote{\url{https://doc-publik.entrouvert.com/admin-fonctionnel/les-tutos/utiliser-l-autocompletion/}}
\note[item]{Exemple à partir d'un connecteur passerelle existant}
\begin{itemize}
\item Requis quand il y a beaucoup de données
\end{itemize}
\end{itemize}
\end{frame}
\begin{frame}{Utilisation dans le portail}
\begin{itemize}
\item Cellule JSON\footnote{\url{https://doc-publik.entrouvert.com/admin-fonctionnel/fabrique-formulaires/form-champs/champ_liste/}}
\note[item]{Exemple à base d'etherpad, bis}
\note[item]{Ne pas trop s'apesantir parce que relou pour nous d'intégrer ça.}
\item Utilisation du langage de template Django\footnote{\url{https://docs.djangoproject.com/fr/2.2/ref/templates/language/}}
\item Des filtres supplémentaires sont disponibles\footnote{\url{https://doc-publik.entrouvert.com/admin-fonctionnel/parametrage-avance/utiliser-les-filtres/}}
\end{itemize}
\end{frame}
\section{Appel Webservice}
\begin{frame}{Présentation}
\begin{itemize}
\item Objectif : envoyer des données
\note[item]{Exemple à base de \url{https://requestbin.com}}
\begin{itemize}
\item Toujours en JSON
\end{itemize}
\item Et en récupérer (même format que les sources de données)
\end{itemize}
\end{frame}
\begin{frame}{Utilisation}
\begin{itemize}
\item Dans les workflows
\begin{itemize}
\item Action « Webservice »\footnote{\url{https://doc-publik.entrouvert.com/admin-fonctionnel/fabrique-de-workflows/les-actions-de-workflow/elements_appeler-webservices/}}
\item Envoyer les données de la demande
\end{itemize}
\item Dans les formulaires
\begin{itemize}
\item Déclaration dans les paramètres
\item Condition de sortie de page, champ commentaire...
\end{itemize}
\end{itemize}
\end{frame}
\section{API}
\begin{frame}{Authentification}
\begin{itemize}
\item Authentification HTTP Basic, à privilégier
\item Authentification par signature \footnote{\url{https://doc-publik.entrouvert.com/dev/wcs/api-webservices/authentification/}}
\end{itemize}
\end{frame}
\subsection{API démarches}
\begin{frame}{Agir sur une demande}
\begin{itemize}
\item Déclencheur d'une action « Saut automatique » \footnote{\url{https://doc-publik.entrouvert.com/admin-fonctionnel/fabrique-de-workflows/les-actions-de-workflow/actions_transition-automatique/}}
\begin{itemize}
\item Ou d'une action globale
\end{itemize}
\item Appel authentifié en POST vers l'adresse du formulaire à traiter \footnote{\url{https://doc-publik.entrouvert.com/dev/wcs/api-webservices/traitement-d-un-formulaire/}}
\end{itemize}
\end{frame}
\begin{frame}{Web services exposés}
\begin{itemize}
\item w.c.s. expose une large API
\begin{itemize}
\item Récupérer la liste de tous les formulaires
\item Récupérer les données d'un formulaire
\item Compléter un formulaire
\end{itemize}
\item Documentation : \url{https://doc-publik.entrouvert.com/dev/wcs/api-webservices/}
\note[item]{Souligner que c'est une approche alternative, push vs pull, tout ça.}
\end{itemize}
\end{frame}
\subsection{API connexion}
\begin{frame}{Web services exposés}
\begin{itemize}
\item authentic expose une large API
\begin{itemize}
\item Lister et rechercher des utilisateurs
\item Créer ou supprimer un utilisateur
\item Agir sur les rôles
\end{itemize}
\item Documentation : \url{https://doc-publik.entrouvert.com/dev/api-authentic/}
\end{itemize}
\end{frame}
\begin{frame}[focus]
Fin !
\end{frame}
\end{document}