Geekflare est soutenu par son public. Nous pouvons percevoir des commissions d'affiliation sur les liens d'achat présents sur ce site.
En Développement Dernière mise à jour : 24 septembre 2023
Partager sur :
Invicti Web Application Security Scanner - la seule solution qui offre une vérification automatique des vulnérabilités avec Proof-Based Scanning™.

Si vous êtes un développeur qui écrit des API, vous avez probablement rencontré YAML, même si votre principal outil de sérialisation est JSON

YAML possède sa propre syntaxe conviviale, et c'est un langage pratique à ajouter à votre arsenal de développement

Découvrons les bases de YAML

Sérialisation des données

Lorsque vous souhaitez envoyer une structure de données ou un objet sur un réseau informatique, par exemple Internet, vous devez le transformer dans un format spécial pour pouvoir le lire et le stocker. Ce processus est connu sous le nom de sérialisation et revêt une importance considérable sur le web. Un exemple d'utilisation courante de la sérialisation est la lecture de données à partir de bases de données et leur transfert sur le web

Les formations de sérialisation comprennent JSONYAML, XML

Dans cet article, nous parlons de YAML, et à la fin de l'article, vous serez en mesure de travailler avec YAML et d'avoir une introduction claire à YAML

Qu'est-ce que YAML et quel est son intérêt pour moi ?

YAML est un format de sérialisation de données qui signifie YAML n'est pas un langage de balisage (Markup language)

Le principal avantage de l'utilisation de YAML est la lisibilité et l'écriture. Si vous avez un fichier de configuration qui doit être plus facile à lire, il est préférable d'utiliser YAML. YAML n'est pas une substitution complète de JSON, car JSON et XML ont aussi leur place ; néanmoins, il est utile d'apprendre YAML

Un autre avantage de YAML est sa prise en charge de divers types de données tels que les cas, les tableaux, les dictionnaires, les listes et les scalaires. Il supporte bien les langages les plus populaires comme JavaScript, PythonRuby, Java, etc.

YAML ne prend en charge que les espaces, et il est sensible à la casse et à l'espace. Les tabulations ne sont pas acceptées universellement. Un fichier YAML porte l'extension .yaml

Syntaxe de base du YAML

Chaque fichier YAML commence par ---, qui indique le début d'un fichier YAML

Lors de la création d'une API, nous nous intéressons à une fonctionnalité fournie par YAML, connue sous le nom de mapping

Les exemples suivants illustrent le mappage en YAML

--
nom : James
garçon : oui

GPA

: 3.41

La syntaxe du mapping est key : value. (Notez l'espace, il est très important dans YAML, contrairement à JSON ou XML).

YAML prend également en charge des types de données tels que les caractères, les chaînes, les entiers, les valeurs flottantes et les collections telles que les tableaux et les listes, qui sont construits à partir de types de données de base

Types de données en YAML

Voyons l'exemple de YAML ci-dessous

---

MALE : FALSE

GPA : 3.61

ISSUES : NULL

NAME : "BIGYAN"

AGE : 16

Le premier type de données est un booléen, qui peut prendre deux valeurs : true (vrai) ou false (faux). La valeur de GPA est en virgule flottante. YAML prend également en charge le type de données null, comme pour "Questions". La valeur de "Nom"est une chaîne de caractères qui doit être citée entre guillemets doubles ou simples. YAML prend également en charge les chaînes de caractères multilignes et les chaînes de caractères multilignes en tant que chaînes uniques pour des raisons de lisibilité

Chaînes multilignes et à ligne unique

--

A propos de : >

 Bonjour, je m'appelle Ryan

, je viens de l'Alabama et j'aime

 jouer au football

Le symbole <i>></i> vous permet d'écrire une chaîne d'une seule ligne sur plusieurs lignes. La phrase est en fait une description d'une seule ligne bien que nous ayons plusieurs lignes

Il est également possible d'avoir des chaînes de plusieurs lignes en utilisant le symbole | comme autorisé

À propos de :

|



 Il s'agit d'une chaîne de plusieurs lignes

 Elle sera imprimée par ligne

Liste

Les listes sont très importantes en YAML

Un exemple de liste est donné ci-dessous

--

 pomme

 banane

 mangue

La correspondance entre les scalaires et les listes est illustrée ci-dessous, ce qui est très important pour la plupart des fichiers de configuration



Fruits :

 Pommes

 Bananes

 Goyaves 

L'imbrication est nécessaire pour passer d'un scalaire à une liste. Nous pouvons également avoir plusieurs listes imbriquées, comme le montre l'exemple ci-dessous

Automobiles :

 Voiture :

 Hyundai

 Volkswagen

 Ford

Ici, les voitures sont imbriquées dans les automobiles, et Hyundai est imbriquée dans les voitures. Il s'agit d'un exemple d'imbrication multiple. Nous pouvons avoir des imbrications multiples autant que nous le souhaitons

Sujets :

 Ingénierie :

 Ingénierie mécanique :

 Conception et fabrication

 Automobile

 Contrôle et conception

 Génie civil :

 Ingénierie structurelle

 Hydroélectricité

 Arts :

 Médiéval

 Moderne

 Peinture

YAML fournit également les symboles & et * en tant qu'ancres et références à l'ancre pour éviter la duplication. Ils sont essentiels dans les fichiers de configuration de frameworks tels que Ruby on Rails pour réduire la taille du fichier YAML

Voyez l'exemple ci-dessous

<span class="hljs-attr">détails :</span> <span class="hljs-meta">&amp;détails</span>
 <span class="hljs-attr">nom :</span> <span class="hljs-string">"John"</span>
age : 18
profession : ingénieur

<< :

*

détails

ce qui est équivalent à

profession : ingénieur

nom : "John"

âge : 18

YAML en Python

Python supporte YAML, y compris certains modules comme ruamel et pyyaml. Commencez par installer pyyaml

pip install pyyaml

Pour le tutoriel, créez un fichier avec un nom details.yaml

name : "john"

age:18

gender : male

Créez un autre fichier nommé feed.yaml avec le contenu suivant

sports :

 football
 basketball
 cricket
 baseball


pays :
 Brésil
 Lituanie
 Australie
 USA

Commençons par lire le fichier details.yaml

import yaml

with open('details.yaml') as f :
    
 data = yaml.load(f, Loader=yaml.FullLoader)
 print(data)

Après avoir exécuté le fichier details.py, nous obtenons la sortie suivante

 $ python details.py
{'name' : "john", 'age' : 18, 'gender' : male}
import yaml

with open(r'feed.yaml') as file :
 # Le paramètre FullLoader gère la conversion des
 # valeurs scalaires en Python au format dictionnaire
 fruits_list = yaml.load(file, Loader=yaml.FullLoader)

 print(fruits_list)

Écrire YAML dans des fichiers en Python

import yaml

dict_file = [{'sports' : ['hockey', 'rugby', 'tennis', 'ping pong', 'football', 'badminton']},
{'pays' : ['Jamaïque', 'Angleterre', 'Népal', 'Pays-Bas', 'Afrique du Sud', 'Bolivie', 'Portugal']}]

with open(r'E:\data.yaml', 'w') as file : #créer un nouveau fichier yaml
 data = yaml.dump(dict_file, file)

Implémentation de YAML dans Node.js

Node.j s est un langage de traitement côté serveur, et la sérialisation des données revêt une importance considérable dans le processus de développement

Pour notre tutoriel, considérons le fichier suivant example.yaml

name:John

age:18

Hobbies :

 Hobby1:Football

 Hobby2:BasketBall

 Hobby3:Hockey

Job :

-Système

administrator

-Programmeur
Nous avons une bibliothèque npm disponible pour Node.js appelée js-yaml. Commençons par installer le module en

npm install js-yaml

Nous utilisons ensuite le module js-yaml dans notre fichier

const yaml = require('js-yaml') ; //initialise js-yaml
const fs = require('fs') ; //initialise filestream

try {
 const result = yaml.load(fs.readFileSync('example.yml', 'utf8')) ;
 console.log(result) ;
} catch (e) {
 console.log(e) ; //catch exception

}


Conclusion

Dans les cadres de la programmation et les applications modernes où les données sont stockées ou distribuées, YAML devient de plus en plus courant dans les fichiers de configuration. YAML vise un grand nombre des mêmes applications de communication que le langage de balisage extensible (XML), mais sa syntaxe minimale est délibérément différente de celle de XML

Les fichiers YAML peuvent être créés pour des structures de données fixes à l'aide de commandes d'impression qui écrivent à la fois les données et la décoration particulière du YAML. Toutefois, il est préférable d'utiliser un émetteur YAML dédié pour déverser des données hiérarchiques variées ou complexes. De même, avec les expressions régulières, les fichiers YAML de base (par exemple, les paires clé-valeur) sont facilement analysés.

  • Bigyan Ghimire
    Auteur
Merci à nos sponsors
D'autres lectures intéressantes sur le développement
Alimentez votre entreprise
Quelques outils et services pour aider votre entreprise à se développer.
  • Invicti utilise le Proof-Based Scanning™ pour vérifier automatiquement les vulnérabilités identifiées et générer des résultats exploitables en quelques heures seulement.
    Essayez Invicti
  • Web scraping, proxy résidentiel, proxy manager, web unlocker, search engine crawler, et tout ce dont vous avez besoin pour collecter des données web.
    Essayez Brightdata
  • Monday.com est un système d'exploitation tout-en-un qui vous aide à gérer vos projets, vos tâches, votre travail, vos ventes, votre CRM, vos opérations, vos flux de travail et bien plus encore.
    Essayez le lundi
  • Intruder est un scanner de vulnérabilité en ligne qui détecte les faiblesses de votre infrastructure en matière de cybersécurité, afin d'éviter des violations de données coûteuses.
    Essayer l'intrus