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.
Tartalomjegyzék
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.
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.
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.
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.