Partie 1 Exécutez e-Gov à l'aide de la bibliothèque SmartHR kiji (spécifications e-Gov)

1. 1. introduction

La bibliothèque kiji intégrée à SmartHR, un service logiciel de cloud pour le personnel et la main-d'œuvre, est un OSS créé dans Ruby, et tout le monde peut l'obtenir, le modifier et le redistribuer. SmartHR kiji

Dans cet article, nous allons essayer de générer un xml signé en utilisant la bibliothèque kiji (ci-après, kiji) et de l'envoyer au système d'application électronique e-Gov (ci-après, e-Gov) avec la commande curl. Puisque nous déplaçons e-Gov de manière interactive, nous pensons que nous pouvons comprendre en profondeur les spécifications d'e-Gov. De plus, nous définirons les problèmes d'e-Gov et envisagerons la possibilité d'une amélioration du portail mineur. Il convient de noter que l'e-Gov qui a été confirmé pour fonctionner ici est un environnement de vérification ouvert aux développeurs de logiciels.

Cette fois, nous présenterons les spécifications e-Gov comme la première des quatre fois. La deuxième fois est le matériel public e-Gov, la troisième fois est la construction de l'environnement d'exécution et la quatrième fois est la confirmation de la machine réelle.

L'environnement d'exploitation est windows10, ruby 2.6.5p114 (révision 67812 du 01/10/2019) [x64-mingw32], curl 7.58.0 (x86_64-pc-win32) libcurl / 7.58.0 WinSSL zlib / 12.11.

2. Lecteur supposé

Les lecteurs suivants sont supposés.

--Les personnes souhaitant comprendre les spécifications d'e-Gov pour développer des services logiciels

3. 3. Qu'est-ce que l'API de liaison externe e-Gov?

L'application électronique vous permet d'effectuer des procédures administratives telles que des demandes papier et des notifications depuis votre ordinateur personnel ou professionnel via Internet. e-Gov publie les spécifications d'une API de liaison externe pour la réalisation d'applications électroniques pour diverses procédures administratives sous la juridiction de chaque ministère et agence pour les services logiciels développés par les développeurs de logiciels.

e-Gov traite les demandes de procédures selon le flux de ① à ④. Parmi celles-ci, les spécifications API pour (1) et (4) sont sujettes à publication. ① L'utilisateur envoie les données d'application créées à e-Gov et reçoit une confirmation d'arrivée. ② e-Gov envoie les données de candidature complétées au ministère compétent. ③ Le ministère responsable de la procédure examine les données de la demande et enregistre le résultat dans e-Gov. ④ L'utilisateur s'adresse à e-Gov et confirme les résultats de l'examen et les données des documents officiels. システム概要.png

L'API de liaison externe e-Gov peut être classée en trois grandes catégories: (1) API d'enregistrement de l'ID utilisateur, (2) API d'authentification utilisateur et (3) diverses API de traitement d'application électronique. Dans les services logiciels, vous pouvez poursuivre la procédure de candidature souhaitée en appelant ces API de liaison externes en combinaison.

API全体処理フロー.png

L'API de liaison externe e-Gov est illustrée ci-dessous. Pour certaines API, vérifiez l'opération avec la commande curl dans la vérification de la machine réelle.

NO e-API de liaison externe Gov Contenu Confirmation réelle de la machine
1 Enregistrement de l'ID utilisateur e-Enregistrer l'ID utilisateur dans Gov
2 Authentification d'utilisateur e-Authentifier les utilisateurs avec Gov
3 Application en vrac 複数手続をまとめてApplication en vracする(各手続毎に到達番号が割り振られる)
4 Obtenir des informations sur la liste Obtenez une liste des éléments soumis
5 Acquisition des informations de la liste des candidatures Obtenez une liste d'applications
6 Demande de statut Renseignez-vous sur le statut de l'application du numéro d'arrivée spécifié
7 Retrait Retirer la demande du numéro d'arrivée spécifié
8 Obtenez la liste des notifications de correction Obtenez une liste de notifications de correction
9 Modification (nouvelle soumission) Soumettez à nouveau la demande pour le numéro d'arrivée spécifié
10 Correction (correction partielle) Une correction partielle est effectuée pour l'application pour le numéro d'arrivée spécifié
11 Modification (demande de modification) Demander une modification de la demande du numéro d'arrivée spécifié (uniquement pour les procédures relevant de la compétence du ministère de la Santé, du Travail et des Affaires sociales)
12 Obtenez une liste de documents officiels et de commentaires Obtenez une liste des documents officiels et des commentaires pour l'application avec le numéro d'arrivée spécifié
13 Obtention de documents officiels Renvoyer les documents officiels de la demande avec le numéro d'arrivée spécifié au format ZIP
14 Acquisition des documents officiels terminée e-Govに対してAcquisition des documents officiels terminéeを通知する
15 Vérification de la signature des documents officiels Obtenez le certificat officiel et la signature officielle des documents officiels
16 Recevoir une notification de commentaire Recevez une notification de commentaire pour l'application avec le numéro d'arrivée spécifié
17 Acquisition de notification de commentaire terminée e-Govに対してAcquisition de notification de commentaire terminéeを通知する
18 Obtention d'une liste des institutions financières prenant en charge le paiement électronique Obtenez une liste des institutions financières qui peuvent payer l'argent du Trésor national par voie électronique
19 Obtenir la liste des informations de paiement Acquérir des informations de paiement telles que les frais émis au numéro d'arrivée spécifié
20 Affichage du site de l'institution financière de paiement électronique Transition vers la banque en ligne des institutions financières
21 Ajouter des informations d'identification de certificat e-Ajouter une identité de certificat à Gov
22 Mise à jour des informations d'identification du certificat e-Mettre à jour les informations d'identification du certificat gérées par Gov
23 Supprimer les informations d'identification du certificat e-Supprimer les informations d'identification du certificat gérées par le gouvernement

3.1 API d'enregistrement de l'ID utilisateur

L'ID utilisateur est un ID qui identifie de manière unique l'utilisateur qui crée une application électronique à l'aide du service logiciel. Dans e-Gov, l'ID utilisateur n'est enregistré qu'une seule fois pour chaque utilisateur.

Le service logiciel envoie à e-Gov le XML avec l'ID utilisateur signé avec la clé privée. e-Gov vérifie la signature XML et enregistre l'ID utilisateur et les informations d'identification du certificat de clé publique en association les uns avec les autres.

3.2 API d'authentification des utilisateurs

Dans e-Gov, l'authentification de l'utilisateur est effectuée avant d'exécuter diverses API de traitement d'application électronique.

Le service logiciel envoie le XML avec l'ID utilisateur signé avec la clé privée à e-Gov. e-Gov émettra une clé d'accès s'il n'y a pas de problème après avoir confirmé que l'ID utilisateur a été enregistré dans le système et la correspondance entre l'ID utilisateur et les informations d'identification du certificat.

Désormais, dans les services logiciels, il est nécessaire de définir la clé d'accès dans la partie d'en-tête HTTP lors de l'appel de diverses API de traitement d'application électronique. La clé d'accès a une période valide, et si la clé d'accès expire après la période de validité, l'accès à diverses API ne sera pas autorisé. Dans ce cas, vous devez à nouveau authentifier l'utilisateur et obtenir une nouvelle clé d'accès.

3.3 Diverses API de traitement électronique des demandes

Lors de l'examen d'un scénario dans lequel un utilisateur procède à une procédure de candidature électronique à l'aide d'un service logiciel, il peut être grossièrement divisé en cinq en combinant des API associées.

Tout d'abord, l'utilisateur effectue une demande d'état à partir de l'application batch. Après cela, la demande sera retirée ou modifiée si nécessaire en fonction du résultat de la demande de statut. De plus, nous allons acquérir les documents officiels et les commentaires émis au fur et à mesure de l'avancement de l'examen de la procédure. À un moment différent de ce qui précède, l'utilisateur acquiert une liste d'institutions financières qui peuvent utiliser le paiement électronique et une liste d'informations de paiement si nécessaire, et conserve les informations d'identification du certificat enregistrées dans e-Gov.

Le contenu ci-dessus est résumé.

NO scénario API de traitement électronique des demandes
1 De l'application par lots à la demande de statut Application en vrac
Obtenir des informations sur la liste
Acquisition des informations de la liste des candidatures
Demande de statut
2 Retrait de la demande ou mise en œuvre de la modification Retrait
Modification (nouvelle soumission, modification partielle, demande de modification)
3 Acquisition de documents officiels et commentaires Obtenez une liste de documents officiels et de commentaires
Obtention de documents officiels
Vérification de la signature des documents officiels
Obtention de documents officiels完了
Recevoir une notification de commentaire
Recevoir une notification de commentaire完了
4 Liste des institutions financières qui peuvent utiliser le paiement électronique et
Acquisition de la liste des informations de paiement
Obtention d'une liste des institutions financières qui peuvent utiliser le paiement électronique
Obtenir la liste des informations de paiement
5 Maintenance des informations d'identification du certificat Ajouter des informations d'identification de certificat
Mise à jour des informations d'identification du certificat
Supprimer les informations d'identification du certificat

4. Mesures de sécurité de l'information requises pour les services logiciels

Les services logiciels doivent prendre les mesures de sécurité des informations suivantes afin d'utiliser l'API de liaison externe e-Gov.

Les détails sont décrits dans «Spécifications des demandes de sécurité des informations de l'API de liaison externe».

5. Interface de connexion externe e-Gov

Organisez l'interface de connexion externe e-Gov du point de vue de l'entrée et de la sortie.

Classification Contenu
contribution
  • Demander l'URI pour chaque API
    Paramètres URI (version API, numéro de transmission, période de transmission, numéro d'arrivée, etc.)
    En-tête HTTP (clé d'accès, ID logiciel, ID d'authentification de base et mot de passe)
    Corps de la requête HTTP (spécifiez les données d'application, etc. uniquement au moment de la commande POST)
  • production Code de réponse HTTP (normal, lorsqu'une erreur se produit)
    Corps de la réponse HTTP (résultat de la réponse XML)

    Ici, après avoir organisé les données d'entrée / sortie, nous expliquerons en détail les données d'application et le xml signé.

    (1) Entrée

    Étant donné que le service logiciel utilise l'API de liaison externe e-Gov, il accède à l'URI de requête spécifié pour chaque API. Lors de l'accès à l'URI de la demande, spécifiez la clé d'accès et l'ID du logiciel dans l'en-tête HTTP. En outre, spécifiez l'ID d'authentification de base et le mot de passe ensemble uniquement dans l'environnement de vérification.

    Lorsque vous accédez à l'URI de la requête avec la commande POST, vous pouvez demander la procédure de candidature à e-Gov en spécifiant les données de l'application, etc. dans la partie corps de la requête et en l'envoyant. Les données d'application sont la conversion de l'ensemble de données d'application dans un format qui peut être accepté par e-Gov. De plus, lors de l'accès à l'URI de la demande avec la commande GET, diverses informations peuvent être obtenues auprès d'e-Gov en spécifiant les informations requises dans le paramètre URI.

    L'API d'application électronique e-Gov qui utilise la commande POST est résumée. Pour ces API, spécifiez l'une des (1) données d'application, (2) du xml signé et (3) des autres dans la partie corps de la requête.

    NO API de traitement électronique des demandes Application Data Xml signé Autre
    1 Enregistrement de l'ID utilisateur × ×
    2 Authentification d'utilisateur × ×
    3 Application en vrac × ×
    4 Retrait × ×
    5 Modification (nouvelle soumission) × ×
    6 Correction (correction partielle) × ×
    7 Modification (demande de modification) × ×
    8 Vérification de la signature des documents officiels × ×
    9 Affichage du site de l'institution financière de paiement électronique × ×
    10 Ajouter des informations d'identification de certificat × ×
    11 Mise à jour des informations d'identification du certificat × ×
    12 Supprimer les informations d'identification du certificat × ×

    (2) Sortie

    e-Gov renvoie une réponse à une demande de service logiciel. La réponse comprend le code de réponse et le corps de la réponse (résultat de la réponse XML). Le service logiciel effectue un traitement ultérieur en fonction de la réponse de chaque API.

    La balise \ du corps de la réponse (résultat de la réponse XML) de l'API officielle d'acquisition de documents ou de l'API d'acquisition de commentaires contient des données obtenues en codant un fichier au format Zip au format Base64. Il s'agit d'un document officiel ou d'une notification de commentaire émise par le ministère de la procédure compétent, et il est nécessaire que le service logiciel le décode au format Base64, décompresse le fichier au format Zip et fournisse un moyen de le montrer à l'utilisateur.

    5.1 Ensemble de données d'application et données d'application

    L '"ensemble de données d'application" est un ensemble de données composé de XML de gestion de configuration, de formulaire de demande XML et de fichiers joints, et est utilisé pour une application par lots, une demande de retrait et une demande de modification.

    Dans le service logiciel, e-Gov signe le XML de gestion de configuration afin de confirmer l'authenticité de l'expéditeur et si les données transmises ont été falsifiées ou non. En outre, l'ensemble de données d'application contenant le XML de gestion de la configuration signé (xml signé) est converti en fichier zip et encodé au format Base64.

    "Données d'application" est le résultat de l'encodage du fichier zip au format Base64 et stocké dans la balise \ de XML, qui est un format qu'e-Gov peut accepter. Le format des données d'application est défini pour chaque API. Les détails sont décrits dans "Spécifications de l'API de liaison externe du système d'application électronique e-Gov (version 1)". 申請データの書式.png

    Ensuite, nous expliquerons le XML de gestion de la configuration, le XML du formulaire de candidature et les fichiers joints.

    (1) Gestion de la configuration XML

    En tant qu'unité logique qui stocke les informations d'attribut de l'ensemble des données d'application, les informations d'application qui ne sont pas incluses dans le XML d'application et la relation entre les unités logiques de l'ensemble des données sont gérées.

    Le fichier physique d'informations de gestion de configuration est appelé «XML de gestion de configuration», et à l'exception des demandes de retrait, il est toujours inclus dans l'ensemble de données d'application.

    La structure du XML de gestion de la configuration est définie pour chaque application d'application par lots, demande de retrait, demande de retrait et modification. De plus, dans le format de signature de fichier individuel décrit plus loin, la structure de balise des informations de configuration est définie pour le XML de gestion de la configuration pour le formulaire de demande XML, le XML de gestion de la configuration pour la modification et le XML de gestion de la configuration pour les documents joints.

    (2) Formulaire de demande XML

    Il s'agit d'un formulaire pour remplir les éléments de demande / notification dans chaque procédure administrative. Dans e-Gov, le format XML qui stocke les éléments de demande / notification est appelé «formulaire de demande», et son fichier physique est appelé «formulaire de demande XML».

    (3) Fichier joint

    Il s'agit d'un document joint qui doit être soumis avec le formulaire de candidature en fonction des éléments de candidature / notification dans chaque procédure administrative. Dans e-Gov, les autres documents qui ne sont pas stockés dans le formulaire de candidature sont appelés «documents joints» et leurs fichiers physiques sont appelés «fichiers joints».

    5.2 À propos du XML signé

    Dans e-Gov, le certificat électronique (clé publique) utilisé pour chaque ID utilisateur est utilisé pour chaque ID utilisateur afin de confirmer l'identité et de détecter si le document a été falsifié sur la base de l'infrastructure à clé publique (PKI). Il est géré en l'associant à l'ID. Par conséquent, dans le service logiciel, il est nécessaire de créer un xml signé pour les données d'application à l'aide de la clé privée correspondant au certificat numérique géré pour chaque ID utilisateur.

    Un xml signé est un fichier xml avec des informations de signature électronique ajoutées. Pour les signatures xml, la recommandation du W3C (https://www.w3.org/TR/xmldsig-core/) spécifie la syntaxe XML pour les signatures numériques.

    Les informations de signature électronique sont (1) des informations sur l'algorithme utilisé pour le calcul de la valeur de signature et le calcul du condensé, (2) la valeur de hachage pour confirmer la falsification du document, (3) la signature électronique pour la valeur de hachage, et (4) le certificat électronique (clé publique). Le format des informations de signature électronique est le suivant. 電子署名情報の形式.png

    La description de chaque élément de balise de signe xml est réimprimée à partir de Wiki. e-Gov suit également ce contenu.

    --L'élément SignedInfo spécifie ce qu'il faut signer et l'algorithme à utiliser. Les éléments SignatureMethod et CanonicalizationMethod sont utilisés par l'élément SignatureValue et sont inclus dans SignedInfo pour les protéger contre la falsification.

    Il existe deux types de xml signé e-Gov: le xml signé inclus dans l'ensemble de données d'application et le xml signé spécifié directement dans la partie du corps HTTP. Le premier est utilisé pour l'API d'application par lots, etc., et le dernier est utilisé pour l'API d'enregistrement / d'authentification des utilisateurs, etc.

    5.2.1 XML signé inclus dans l'ensemble de données d'application

    Lors de l'attribution d'une signature au XML de gestion de la configuration inclus dans l'ensemble de données d'application, (1) «format standard» qui attribue une signature à l'ensemble des données d'application, et (2) «format de signature de fichier individuel» qui attribue une signature à chaque formulaire de demande et fichier joint. Il existe deux types.

    Le format des informations de signature électronique est décrit dans "e-Gov Electronic Application System External Linkage API Application Data Specification Common Data Specification".

    (1) Format standard

    Les données d'application au format standard sont un ensemble de données composé des trois fichiers suivants.

    Ces fichiers ont les relations suivantes: ファイル階層(標準形式).png

    Dans le service logiciel, les données d'application sont créées par signature selon la procédure suivante. (1) Calcul de la valeur de hachage à partir des informations de gestion de configuration du XML de gestion de configuration ② Calculez la valeur de hachage à partir du XML de l'application ③ Calculez la valeur de hachage à partir des documents joints ④ Signez toute la valeur de hachage avec la clé privée ⑤ Donner les informations de certificat (clé publique) correspondant à la clé privée ⑥ Consolidez l'ensemble de données au format zip et encodez-le au format Base64 ⑦ Stocker dans les données d'application

    署名付きxml(標準形式).png

    À partir des données de candidature reçues, e-Gov vérifiera l'identité et si les données ont été falsifiées ou non par la procédure suivante. (1) Extraire le résultat de l'encodage au format Base64 de l'ensemble de données à partir des données d'application (2) Décoder au format Base64 et convertir en ensemble de données au format zip ③ Décompressez le zip et obtenez le XML de gestion de la configuration (4) Comparez le certificat de gestion de configuration XML avec le certificat géré par e-Gov pour confirmer l'authenticité de l'expéditeur. ⑤ Décryptez la valeur de signature avec le certificat (clé publique) et extrayez la valeur de hachage ⑤ Calculez les valeurs de hachage pour le XML de gestion de la configuration, le XML d'application et les fichiers joints. ⑥ Comparez les valeurs de hachage et si elles correspondent, déterminez qu'il n'y a pas de falsification des données.

    Les procédures d'application pour le format standard sont les suivantes.

    (2) Format de signature de fichier individuel

    Les données d'application dans le format de signature de fichier individuel sont un ensemble de données composé des 5 fichiers suivants.

    Ces fichiers ont les relations suivantes:

    ファイル階層(個別ファイル署名形式).png

    La valeur de hachage calculée à partir du formulaire de candidature XML est signée et la valeur de signature est ajoutée aux informations de configuration XML du formulaire de candidature. En outre, la valeur de hachage calculée à partir du document joint est signée et la valeur de signature est ajoutée aux informations de configuration XML pour le document joint. Contrairement au format standard, il n'y a pas de valeur de signature dans le XML de gestion de la configuration.

    Dans le service logiciel, les données d'application sont créées par signature selon la procédure suivante.

    (1) Calcul de la valeur de hachage à partir des informations de gestion de configuration des informations de configuration XML pour le formulaire de candidature ② Calculez la valeur de hachage à partir du XML de l'application ③ Créez une valeur de signature avec une clé privée à partir de chaque valeur de hachage ④ Donner les informations de certificat (clé publique) correspondant à la clé privée ⑤ Informations de configuration pour les documents joints Calculez la valeur de hachage à partir des informations de gestion de configuration de XML ⑥ Calculez la valeur de hachage à partir du fichier joint ⑦ Créez une valeur de signature avec une clé privée à partir de chaque valeur de hachage ⑧ Donner les informations de certificat (clé publique) correspondant à la clé privée ⑨ Consolidez l'ensemble de données au format zip et encodez-le au format Base64 ⑩ Stocker dans les données d'application

    署名付きxml(個別ファイル署名形式).png

    e-Gov vérifie la vérification d'identité et la présence ou l'absence de falsification de données à partir des données d'application reçues dans la procédure inverse.

    La procédure d'application pour le format de signature de fichier individuel est la suivante. Le "type d'écriture continue" est un format qui peut décrire plusieurs noms.

    5.2.2 XML signé spécifié directement dans la partie du corps HTTP

    Pour les API liées à l'enregistrement de l'ID utilisateur, à l'authentification de l'utilisateur et à l'ajout / la mise à jour / la suppression des informations d'identification du certificat, spécifiez directement le xml signé dans la partie du corps HTTP.

    Le format des informations de signature électronique est décrit dans "Spécifications de l'API de liaison externe du système d'application électronique e-Gov (version 1)".

    Ces fichiers XML signés ont en commun de calculer la valeur de hachage pour la balise \ entière et de signer cette valeur de hachage. Suivez la procédure ci-dessous pour ajouter des informations de signature. ① Calculez la valeur de hachage pour la balise \ entière ② Signez la valeur de hachage avec la clé privée ⑤ Donner les informations de certificat (clé publique) correspondant à la clé privée HTTPボディ部に指定する署名付きxml.png

    Pour l'enregistrement de l'ID utilisateur et l'authentification de l'utilisateur, ne spécifiez pas le certificat de clé publique dans la balise \ .

    6. À propos de la transition d'état du traitement électronique des demandes

    Dans e-Gov, l'état est géré en le divisant en un état principal et un sous-état en fonction de la progression du traitement des demandes.

    6.1 État principal

    Pour chaque procédure, l'état change dans l'ordre de (traitement) → (atteint) → (en cours de révision) → (révision terminée) → (procédure terminée) en fonction de l'avancement.

    Chaque état a les significations suivantes:

    Nom d'état Contenu
    En traitement Divers contrôles sont en cours sur les données de l'application
    Atteindre Les données d'application ont été acceptées normalement
    À l'étude État dans lequel le ministère examine les données de la demande
    Examen terminé État où l'examen des données de la demande a été achevé
    Fin de procédure La procédure pour les données de candidature est terminée

    --e-Gov effectue diverses vérifications sur les données de l'application. Diverses vérifications sont la vérification de la configuration des fichiers, la vérification du schéma XML, la vérification de la cohérence et la vérification du format. S'il n'y a pas de problème, il passera de (en cours) à (atteint). ――Lorsque l'examen du ministère commence, il passera de (atteint) à (en cours d'examen). ――Lorsque l'examen du ministère est terminé, il passera de (en cours d'examen) à (fin de l'examen).

    6.2 Sous-état

    (1) Ramasser

    Lorsque le logiciel demande à e-Gov de retirer la procédure en (atteint) ou (en cours de révision), le sous-état passe de (aucun) à (en cours de révision), et enfin l'état principal (procédure terminée) + sous-état. (Retiré).

    (2) Correction

    Si une instruction de modification est émise aux données de la demande par le ministère ayant compétence sur la procédure pendant (en cours d'examen), le (sous-état) passera de (aucun) à (en attente du traitement de la modification). En fonction du contenu de l'instruction de correction, le service logiciel doit isoler la séquence suivante comme suit:

    Si le type de modification est "resoumettre" et que le service logiciel demande un amendement (nouvelle soumission), il s'agira de l'état principal (procédure terminée) + sous-état (resoumis). Lorsque le type de correction est «correction partielle», lorsque le service logiciel demande une correction (correction partielle), il devient un sous-état (aucun).

    Ce qui précède est exprimé dans le diagramme de transition d'état.

    e-Gov手続状態遷移図.png

    Recommended Posts

    Partie 1 Exécutez e-Gov à l'aide de la bibliothèque SmartHR kiji (spécifications e-Gov)
    La 3e bibliothèque SmartHR kiji est utilisée pour exécuter e-Gov (construction de l'environnement d'exécution)
    La 2ème bibliothèque SmartHR kiji est utilisée pour exécuter e-Gov (matériel public e-Gov)
    4ème bibliothèque SmartHR kiji est utilisée pour exécuter e-Gov (contrôle de fonctionnement)
    Tokenize à l'aide de la bibliothèque Hugging Face
    J'ai recherché dans la bibliothèque l'utilisation de l'API Gracenote
    Agréger les résultats des tests à l'aide de la bibliothèque Python QualityForward
    Essayez d'utiliser le framework Web Python Tornado Partie 1
    Vérification des méthodes et des variables à l'aide de la bibliothèque voir
    Utilisation de la bibliothèque de tracés 3D MayaVi de Julia
    Essayez d'utiliser le framework Web Python Tornado Partie 2
    J'ai essayé d'utiliser la bibliothèque de programmation fonctionnelle toolz