32 lines
1.8 KiB
TeX
Executable File
32 lines
1.8 KiB
TeX
Executable File
\part{Services Oriented Applications}
|
|
|
|
Nous avons fait exprès de reprendre l'acronyme d'une \emph{Services Oriented Architecture} pour cette partie.
|
|
|
|
|
|
Dans cette partie: la définition d'une interface REST, la définition d'une interface GraphQL, la gestion des versions d'une API (cf. Build APIs you won't hate) le routage d'URLs.
|
|
L'intérêt d'une API est double:
|
|
|
|
\begin{enumerate}
|
|
\item
|
|
Proposer une ouverture de votre application à d'autres finalités
|
|
\item
|
|
Consommer vos propres interfaces: lorsqu'un soucis se présentera, vous ne l'apprendrez pas par un utilisateur du bout-du-monde, mais parce que vos propres outils vous le rappelerons.
|
|
Vous vous rendez compte également de ce qui ne fonctionne pas, pas correctement, qui manque ou qui doit être amélioré.
|
|
Dans la même veine que tout le reste, donc: maintenance, accessibilité, facilité de déploiement. \footnote{Aussi connu sous le principe de \href{https://en.wikipedia.org/wiki/Eating_your_own_dog_food}{}\textbf{Dogfooding}}, qui consiste à exploiter vous-mêmes vos propres créations.
|
|
\end{enumerate}
|
|
|
|
\begin{quote}
|
|
Don't make me think, or why I switched from JS SPAs to Ruby On Rails
|
|
\url{https://news.ycombinator.com/item?id=30206989\&utm_term=comment}
|
|
\end{quote}
|
|
|
|
On a parcouru les templates et le mode "monolithique de DJango".
|
|
Maintenant, on va aborder différentes options:
|
|
|
|
\begin{enumerate}
|
|
\item
|
|
Le mode "intermédiaire", qui consiste à garder tous les mécanismes internes à Django, mais à ajouter une couche de dynamisme au travers d'une (légère) couche de JavaScript ou via HTMX.
|
|
\item
|
|
Le mode "warrior", qui consiste lui à ajouter une API, d'abord pour vos clients et utilisateurs, mais aussi pour votre propre consommation \footnote{Aussi intitulé "Eat your own dog's food"}
|
|
\end{enumerate}
|