Geekflare est soutenu par notre public. Nous pouvons gagner des commissions d'affiliation en achetant des liens sur ce site.
Partager sur:

Introduction à YAML pour les débutants

Scanner de sécurité des applications Web Invicti – 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 peut être JSON.

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

Apprenons les bases de YAML.

Data serialization

Chaque fois que vous souhaitez envoyer une structure de données ou un objet sur des réseaux informatiques, par exemple Internet, vous devez le transformer en un format spécial pour le lire et le stocker. Le processus est généralement connu sous le nom de sérialisation et est d'une importance énorme sur le Web. Un exemple d'utilisation courant de sérialisation est la lecture de données à partir de bases de données et leur transfert sur le Web.

Certaines formations de sérialisation incluent JSON, YAML, XML.

Dans cet article, nous parlons de YAML, et à la fin de l'article, vous pourrez vous frayer un chemin à travers YAML et avoir une introduction claire à YAML.

Qu'est-ce que YAML et en quoi cela me profite-t-il?

YAML est un format de sérialisation de données qui signifie YAML n'est pas un langage de balisage.

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 pour les humains, il est préférable d'utiliser YAML. YAML n'est pas une substitution complète de JSON car JSON et XML ont également 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 prend en charge les langages les plus populaires comme JavaScript, Python, Rubis, Java, etc.

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

Basic YAML syntax

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

Date & Heure créer une API, nous sommes intéressés par une fonctionnalité fournie par YAML appelée mapping.

Les exemples suivants montrent l'exemple de mappage dans YAML.

---
name: James
boy: yes
GPA: 3.41

La syntaxe de mappage est clé: valeur. (Notez l'espace, c'est très crucial en YAML, contrairement à JSON ou XML.

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

Types de données dans YAML

Voyons l'exemple d'un YAML ci-dessous:

---

MALE: FALSE

GPA: 3.61

ISSUES: NULL

NAME: “BIGYAN”

AGE: 16

Le premier type de données est un booléen, où il peut avoir deux valeurs: true ou false. La valeur de GPA est à virgule flottante. YAML prend également en charge le type de données nul comme nous l'avons fait pour "Problèmes". La valeur de "Nom»Est une chaîne qui doit être entre guillemets doubles ou simples. YAML prend également en charge la chaîne multiligne et la chaîne de plusieurs lignes comme une seule pour la lisibilité.

Chaînes multilignes et sur une seule ligne

---

About: >

 Hello this is Ryan

 From Alabama and I like to

 Play soccer.

Les <i>></i> symbole 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.

Nous pouvons également avoir plusieurs chaînes de ligne si nous utilisons le | symbole comme autorisé:

About: |

 This is a multiline string

 And will be printed line wise.

Liste

Les listes sont très importantes dans YAML.

Un exemple de la liste est donné ci-dessous.

---

- apple

- banana

- mango

Le mappage du scalaire aux listes est illustré ci-dessous, ce qui est très important pour la plupart des fichiers de configuration.

---

Fruits:

 Apples

 Banana

 Guava 

L'imbrication est requise pour mapper le scalaire à la liste. Nous pouvons également avoir plusieurs listes imbriquées, comme indiqué dans l'exemple ci-dessous.

Automobiles:

 Car:

     Hyundai

     Volkswagen

     Ford

Ici, les voitures sont imbriquées dans les automobiles et Hyundai est imbriquée dans les voitures. Ceci est un exemple d'imbrication multiple. Nous pouvons avoir plusieurs emboîtements autant que nous le voulons.

Subjects:

     Engineering:

       Mechanical engineering:

         Design and manufacture

         Automobile

         Control and Design

       Civil engineering:

         Structural engineering

         Hydropower

       Arts:

         Medieval

         Modern

         Painting

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

Voir l'exemple ci-dessous

<span class="hljs-attr">details:</span> <span class="hljs-meta">&details</span>
    <span class="hljs-attr">name:</span> <span class="hljs-string">"John"
</span>    age: 18
profession: engineer

<< : * details

ce qui équivaut à:

profession: engineer

name: "John"

age: 18

YAML in Python

Python prend en charge 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

---
countries:
 Brazil
 Lithuania
 Australia
 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:
    # The FullLoader parameter handles the conversion from YAML
    # scalar values to Python the dictionary format
    fruits_list = yaml.load(file, Loader=yaml.FullLoader)

    print(fruits_list)

Writing YAML to Files in Python

import yaml

dict_file = [{'sports' : ['hockey', 'rugby', 'tennis', 'ping pong', 'football', 'badminton']},
{'countries' : ['Jamaica', 'England', 'Nepal', 'Netherlands', 'South Africa', 'Bolivia', 'Portugal']}]

with open(r'E:\data.yaml', 'w') as file: #create a new yaml file 
    data = yaml.dump(dict_file, file)

YAML implementation in Node.js

Node.js est un langage de traitement côté serveur, et la sérialisation des données est d'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:

-System administrator

-Programmer

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

npm install js-yaml

Nous utilisons ensuite le js-yaml module dans notre fichier.

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

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

Conclusion

In programmation moderne frameworks et applications où les données sont stockées ou distribuées, YAML est de plus en plus courant dans les fichiers de configuration. YAML cible un grand nombre des mêmes applications de communication que le langage XML (Extensible Markup Language), mais a une syntaxe minimale qui est délibérément différente 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. Cependant, un émetteur YAML dédié est préférable pour le vidage de données hiérarchiques diverses 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.

Merci à nos commanditaires
Plus de bonnes lectures sur le développement
Alimentez votre entreprise
Certains des outils et services pour aider votre entreprise à se développer.
  • Invicti utilise 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, moteur de recherche et tout ce dont vous avez besoin pour collecter des données Web.
    Essayez Brightdata
  • Semrush est une solution de marketing numérique tout-en-un avec plus de 50 outils de référencement, de médias sociaux et de marketing de contenu.
    Essayez Semrush
  • Intruder est un scanner de vulnérabilités en ligne qui détecte les failles de cybersécurité de votre infrastructure, afin d'éviter des violations de données coûteuses.
    Essayez Intruder