Saturday 2 June 2018

Introduction to YAML

YAML is a human friendly data serialization standard for all programming languages.

YAML shows the data in very clean way, by minimizing the amount of structural characters.

For example,
a.   indentation is used for structure,
b.   colons separate key: value pairs, and
c.   dashes are used to create lists.

Don’t use tabs for indentation
Tabs have been outlawed since they are treated differently by different editors and tools, and since indentation is so critical to proper interpretation of YAML, YAML forbid tabs.

What is the file extension of yaml files?
.yaml, .yml

Is YAML a markup language?
No

Is YAML case sensitive?
Yes

Where is YAML used?
YAML was designed to work with below use cases.

a.   configuration files,
b.   log files,
c.   inter process messaging,
d.   cross-language data sharing,
e.   object persistence, and
f.    debugging of complex data structures

For example, log4j2 supports yaml configuration file.

Log4j2.yaml

Configuration:
  status: warn
  name: YAMLConfigTest
  properties:
    property:
      name: filename
      value: target/test-yaml.log
  thresholdFilter:
    level: debug
  appenders:
    Console:
      name: STDOUT
      PatternLayout:
        Pattern: "%m%n"
    File:
      name: File
      fileName: ${filename}
      PatternLayout:
        Pattern: "%d %p %C{1.} [%t] %m%n"
      Filters:
        ThresholdFilter:
          level: error
 
  Loggers:
    logger:
      -
        name: org.apache.logging.log4j.test1
        level: debug
        additivity: false
        ThreadContextMapFilter:
          KeyValuePair:
            key: test
            value: 123
        AppenderRef:
          ref: STDOUT
      -
        name: org.apache.logging.log4j.test2
        level: debug
        additivity: false
        AppenderRef:
          ref: File
    Root:
      level: error
      AppenderRef:
        ref: STDOUT


Simple yaml file in eclipse is rendered like below.

How to validate yaml data online?
You can use above website to validate your yaml data.

Can I import one YAML file into other?
No, YAML does not support any kind of "import" or "include" statement.

I am going to use below maven dependencies throughout this tutorial.

 <dependencies>
  <!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.dataformat/jackson-dataformat-yaml -->
  <dependency>
   <groupId>com.fasterxml.jackson.dataformat</groupId>
   <artifactId>jackson-dataformat-yaml</artifactId>
   <version>2.9.5</version>
  </dependency>

  <dependency>
   <groupId>com.fasterxml.jackson.core</groupId>
   <artifactId>jackson-databind</artifactId>
   <version>2.9.5</version>
  </dependency>
 </dependencies>

Reference
http://yaml.org/




Previous                                                 Next                                                 Home

No comments:

Post a Comment