YAML - Processi

YAML segue una procedura standard per il flusso di processo. La struttura dati nativa in YAML include rappresentazioni semplici come i nodi. È anche chiamato grafico del nodo di rappresentazione.

Comprende mappatura, sequenza e quantità scalari che vengono serializzate per creare un albero di serializzazione. Con la serializzazione gli oggetti vengono convertiti con un flusso di byte.

L'albero degli eventi di serializzazione aiuta a creare la presentazione dei flussi di caratteri come rappresentato nel diagramma seguente.

La procedura inversa analizza il flusso di byte nell'albero degli eventi serializzato. Successivamente, i nodi vengono convertiti in grafo dei nodi. Questi valori vengono successivamente convertiti nella struttura dati nativa YAML. La figura seguente spiega questo:

Le informazioni in YAML vengono utilizzate in due modi: machine processing e human consumption. Il processore in YAML viene utilizzato come strumento per la procedura di conversione delle informazioni tra viste complementari nel diagramma sopra riportato. Questo capitolo descrive le strutture informative che un processore YAML deve fornire all'interno di una data applicazione.

YAML include una procedura di serializzazione per rappresentare oggetti di dati in formato seriale. L'elaborazione delle informazioni YAML comprende tre fasi:Representation, Serialization, Presentation and parsing. Cerchiamo di discutere ciascuno di essi in dettaglio.

Rappresentazione

YAML rappresenta la struttura dei dati utilizzando tre tipi di nodi: sequence, mapping e scalar.

Sequenza

La sequenza si riferisce al numero ordinato di voci, che mappa l'associazione non ordinata della coppia chiave-valore. Corrisponde all'elenco di array Perl o Python.

Il codice mostrato di seguito è un esempio di rappresentazione in sequenza:

product:
   - sku         : BL394D
     quantity    : 4
     description : Football
     price       : 450.00
   - sku         : BL4438H
     quantity    : 1
     description : Super Hoop
     price       : 2392.00

Mappatura

La mappatura invece rappresenta la struttura dei dati del dizionario o la tabella hash. Un esempio per lo stesso è menzionato di seguito:

batchLimit: 1000
threadCountLimit: 2
key: value
keyMapping: <What goes here?>

Scalari

Gli scalari rappresentano i valori standard di stringhe, numeri interi, date e tipi di dati atomici. Notare che YAML include anche nodi che specificano la struttura del tipo di dati. Per ulteriori informazioni sugli scalari, fare riferimento al capitolo 6 di questo tutorial.

Serializzazione

Il processo di serializzazione è richiesto in YAML che semplifica l'ordine delle chiavi e i nomi degli ancoraggi. Il risultato della serializzazione è un albero di serializzazione YAML. Può essere attraversato per produrre una serie di chiamate di eventi di dati YAML.

Di seguito viene fornito un esempio di serializzazione:

consumer:
   class: 'AppBundle\Entity\consumer'
   attributes:
      filters: ['customer.search', 'customer.order', 'customer.boolean']
   collectionOperations:
      get:
         method: 'GET'
         normalization_context:
       groups: ['customer_list']
   itemOperations:
      get:
         method: 'GET'
         normalization_context:
            groups: ['customer_get']

Presentazione

L'output finale della serializzazione YAML è chiamato presentazione. Rappresenta un flusso di personaggi in un modo umano amichevole. Il processore YAML include vari dettagli di presentazione per la creazione di stream, la gestione del rientro e la formattazione del contenuto. Questo processo completo è guidato dalle preferenze dell'utente.

Un esempio per il processo di presentazione YAML è il risultato del valore JSON creato. Osservare il codice fornito di seguito per una migliore comprensione -

{
   "consumer": {
      "class": "AppBundle\\Entity\\consumer",
      "attributes": {
         "filters": [
            "customer.search",
            "customer.order",
            "customer.boolean"
         ]
      },
      "collectionOperations": {
         "get": {
            "method": "GET",
            "normalization_context": {
               "groups": [
                  "customer_list"
               ]
            }
         }
      },
      "itemOperations": {
         "get": {
            "method": "GET",
            "normalization_context": {
               "groups": [
                  "customer_get"
               ]
            }
         }
      }
   }
}

Analisi

L'analisi è il processo inverso di presentazione; include un flusso di personaggi e crea una serie di eventi. Elimina i dettagli introdotti nel processo di presentazione che causa eventi di serializzazione. La procedura di analisi può non riuscire a causa di un input mal formato. È fondamentalmente una procedura per verificare se YAML è ben formato o meno.

Considera un esempio YAML menzionato di seguito:

---
   environment: production
   classes:
      nfs::server:
         exports:
            - /srv/share1
            - /srv/share3
   parameters:
      paramter1

Con tre trattini, rappresenta l'inizio del documento con vari attributi successivamente definiti in esso.

YAML lint è il parser online di YAML e aiuta ad analizzare la struttura YAML per verificare se è valida o meno. Il link ufficiale per YAML lint è menzionato di seguito:http://www.yamllint.com/

Puoi vedere l'output dell'analisi come mostrato di seguito: