Bevezetés a YAML-be kezdőknek

Ha Ön API-kat író fejlesztő, valószínűleg találkozott már a YAML-lel, még akkor is, ha az elsődleges szerializációs eszköz a JSON lehet.

A YAML saját, barátságos szintaxissal rendelkezik, és ez egy praktikus nyelv a fejlesztési arzenálhoz.

Tanuljuk meg a YAML alapjait.

Adatok sorozatosítása

Amikor valamilyen adatstruktúrát vagy objektumot számítógépes hálózatokon, például az interneten keresztül szeretne elküldeni, azt egy speciális formátumba kell alakítania, hogy elolvassa és tárolja. A folyamatot általában sorozatosításnak nevezik, és óriási jelentőséggel bír az interneten. A szerializálás gyakori felhasználási példája az adatok adatbázisokból történő kiolvasása és a weben való átvitele.

Egyes szerializációs formációk közé tartozik a JSON, YAML, XML.

Ebben a cikkben a YAML-ről beszélünk, és a cikk végén áttekintheti a YAML-t, és világosan bevezetheti a YAML-t.

Mi az a YAML, és milyen előnyökkel jár számomra?

A YAML egy adatsorosító formátum, amely a YAML nem jelölőnyelv rövidítése.

A YAML használatának fő előnye az olvashatóság és az írhatóság. Ha van egy konfigurációs fájlja, amelyet az emberek számára könnyebben kell olvasni, jobb a YAML használata. A YAML nem helyettesíti teljesen a JSON-t, mivel a JSON-nak és az XML-nek is megvan a maga helye; ennek ellenére hasznos tanulni a YAML-t.

A YAML másik előnye a különféle adattípusok, például esetek, tömbök, szótárak, listák és skalárok támogatása. Jól támogatja a legnépszerűbb nyelveket, mint például a JavaScript, Python, Ruby, Java stb.

  Az Androidhoz készült linkbuborék megnyitja az alkalmazáson belüli hivatkozásokat a háttérben

A YAML csak a szóközöket támogatja, és érzékeny a kis- és nagybetűkre, valamint a szóközökre is. A tabulátorokat nem fogadják el általánosan. A YAML fájl .yaml kiterjesztéssel rendelkezik.

Alap YAML szintaxis

Minden YAML karakterrel kezdődik – ami egy YAML fájl kezdetét jelöli.

Amikor API-t hozunk létre, a YAML által biztosított, leképezésként ismert funkcióra vagyunk kíváncsiak.

A következő példák a YAML leképezés példáját mutatják be.

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

A leképezés szintaxisa kulcs: érték. (Ne feledje, hogy a hely nagyon fontos a YAML-ben, ellentétben a JSON-lal vagy az XML-lel.

A YAML támogatja az olyan adattípusokat is, mint a karakterek, karakterláncok, egész számok, lebegő értékek és gyűjtemények, például tömbök, listák, amelyek alapvető adattípusokból épülnek fel.

Adattípusok a YAML-ben

Nézzük meg az alábbiakban a YAML példáját:

---

MALE: FALSE

GPA: 3.61

ISSUES: NULL

NAME: “BIGYAN”

AGE: 16

Az első adattípus logikai érték, ahol két értéke lehet: igaz vagy hamis. A GPA értéke lebegőpontos. A YAML a null adattípust is támogatja, ahogyan az „Issues” esetében is. A „Name” értéke egy karakterlánc, amelyet dupla vagy szimpla idézőjelben kell idézni. A YAML a többsoros karakterláncot és a többsoros karakterláncot is támogatja egyetlenként az olvashatóság érdekében.

Többsoros és egysoros karakterláncok

---

About: >

 Hello this is Ryan

 From Alabama and I like to

 Play soccer.

A > szimbólum lehetővé teszi, hogy egyetlen soros karakterláncot több sorba írjon. A mondat valójában egysoros leírás, bár több sorunk van.

  Helyezhetsz intelligens kijelzőt a mikrohullámú sütő tetejére?

Több soros karakterláncunk is lehet, ha a |-t használjuk megengedett szimbólum:

About: |

 This is a multiline string

 And will be printed line wise.

Lista

A listák nagyon fontosak a YAML-ben.

Az alábbiakban egy példa látható a listára.

---

- apple

- banana

- mango

Az alábbiakban látható a skalárról listákra való leképezés, ami nagyon fontos a legtöbb konfigurációs fájl esetében.

---

Fruits:

 Apples

 Banana

 Guava 

Beágyazás szükséges a skalár listához való hozzárendeléséhez. Több egymásba ágyazott listánk is lehet, amint az az alábbi példában látható.

Automobiles:

 Car:

     Hyundai

     Volkswagen

     Ford

Itt az autók az autókba vannak beágyazva, a Hyundai pedig az autókba. Ez egy példa a többszörös beágyazásra. Amennyit csak akarunk, több fészkelőt is tarthatunk.

Subjects:

     Engineering:

       Mechanical engineering:

         Design and manufacture

         Automobile

         Control and Design

       Civil engineering:

         Structural engineering

         Hydropower

       Arts:

         Medieval

         Modern

         Painting

A YAML & és * szimbólumokat is biztosít horgonyként és hivatkozásként a horgonyra a párhuzamosságok elkerülése érdekében. Ezek nélkülözhetetlenek a konfigurációs fájlokban olyan keretrendszerekben, mint a Ruby on Rails, hogy a YAML fájl kisebb legyen.

Lásd az alábbi példát

<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

ami egyenértékű:

profession: engineer

name: "John"

age: 18

YAML Pythonban

A Python támogatja a YAML-t, beleértve néhány modult, mint például a ruamel és a pyyaml. Kezdje a pyyaml ​​telepítésével

pip install pyyaml

Az oktatóanyaghoz hozzon létre egy fájlt Details.yaml névvel

name: "john"

age:18

gender: male

Hozzon létre egy másik feed.yaml nevű fájlt a következő tartalommal:

sports:

 football
 basketball
 cricket
 baseball

---
countries:
 Brazil
 Lithuania
 Australia
 USA

Kezdjük a details.yaml fájl elolvasásával

import yaml

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

A details.py fájl futtatása után a következő kimenetet kapjuk

 $ 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)

YAML írása a Python fájljaiba

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 megvalósítás a Node.js-ben

A Node.js egy szerveroldali feldolgozási nyelv, és az adatok szerializálása rendkívül fontos a fejlesztési folyamatban.

  2021 legjobb alvási alkalmazása (beleértve az alváskövető alkalmazásokat)

Oktatóanyagunkhoz tekintsük a következő example.yaml fájlt:

name:John

age:18

Hobbies:

 Hobby1:Football

 Hobby2:BasketBall

 Hobby3:Hockey

Job:

-System administrator

-Programmer

A Node.js számára elérhető egy npm könyvtárunk, melynek neve js-yaml. Kezdjük a modul telepítésével

npm install js-yaml

Ezután a js-yaml modult használjuk a fájlunkban.

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
}

Következtetés

A modern programozási keretrendszerekben és alkalmazásokban, ahol adatokat tárolnak vagy osztanak el, a YAML egyre gyakoribb a konfigurációs fájlokban. A YAML sok olyan kommunikációs alkalmazást céloz meg, mint az Extensible Markup Language (XML), de minimális szintaxisa szándékosan különbözik az XML-től.

Rögzített adatstruktúrákhoz YAML-fájlok hozhatók létre olyan nyomtatási parancsokkal, amelyek mind az adatokat, mind a YAML különleges díszítését írják. Azonban egy dedikált YAML-kibocsátó előnyösebb különféle vagy összetett hierarchikus adatok kiíratásához. Hasonlóképpen, a reguláris kifejezésekkel az alapvető YAML-fájlok (pl. kulcs-érték párok) könnyen értelmezhetők.