YAML 是 YAML Ain't Markup Language 的递归缩写。它最初的意思是 "Yet Another Markup Language",但后来为了更准确地反映其以数据为中心的特性,改成了现在的名字。

核心特点:

  • 可读性高:使用缩进和简单的符号来表示结构,类似于 Python。

  • 易于使用:语法简单,直观。

  • 交互性好:与脚本语言(如 Python, Ruby, JavaScript)有很好的交互性。

  • 表达能力强:支持复杂的数据结构。

  • 可扩展性:支持自定义数据类型。

yml的数据类型

1、键值对 (Key-Value)

name: John Doe
age: 30

2、对象

person:
  name: John Doe
  age: 30
  city: New York

3、 数组 / 列表

fruits:
  - Apple
  - Orange
  - Banana

使用示例

# 应用配置示例
app:
  name: "我的超级应用"
  version: 1.0.0
  enabled: true
  server: &server-config # 定义服务器配置锚点
    host: "0.0.0.0"
    port: 8080
    ssl: false

# 数据库配置
database:
  primary:
    <<: *server-config # 继承服务器配置锚点
    name: "primary_db"
    username: "admin"
    password: "secret" # 在实际应用中,密码应从环境变量读取
    pool-size: 10
  replica:
    <<: *server-config # 继承服务器配置锚点,并覆盖端口
    port: 5433
    name: "replica_db"

# 功能开关
features:
  - name: "用户注册"
    enabled: true
  - name: "黑暗模式"
    enabled: false
  - name: "支付系统"
    enabled: true
    providers: [ "Stripe", "PayPal" ] # 内联数组

# 日志配置
logging:
  level: "INFO"
  file: "/var/log/myapp/app.log"
  pattern: "%d{yyyy-MM-dd HH:mm:ss} - %msg%n"

# 应用配置示例
app:
  name: "我的超级应用"
  version: 1.0.0
  enabled: true
  server: &server-config # 定义服务器配置锚点
    host: "0.0.0.0"
    port: 8080
    ssl: false

# 数据库配置
database:
  primary:
    <<: *server-config # 继承服务器配置锚点
    name: "primary_db"
    username: "admin"
    password: "secret" # 在实际应用中,密码应从环境变量读取
    pool-size: 10
  replica:
    <<: *server-config # 继承服务器配置锚点,并覆盖端口
    port: 5433
    name: "replica_db"

# 功能开关
features:
  - name: "用户注册"
    enabled: true
  - name: "黑暗模式"
    enabled: false
  - name: "支付系统"
    enabled: true
    providers: [ "Stripe", "PayPal" ] # 内联数组

# 日志配置
logging:
  level: "INFO"
  file: "/var/log/myapp/app.log"
  pattern: "%d{yyyy-MM-dd HH:mm:ss} - %msg%n"

注意事项

  1. 空格,不是 Tab: 这是最常见的错误来源。确保你的编辑器将 Tab 自动转换为空格。

  2. 缩进一致: 同一层级的缩进空格数必须一致。

  3. 字符串引号: 当字符串包含 :#[{]} 等可能引起歧义的字符时,务必使用引号。

  4. 使用注释: 复杂的配置使用注释来说明,方便他人和自己日后维护。

  5. 利用锚点和别名: 对于重复的配置块,使用锚点和别名来保持 DRY(Don't Repeat Yourself)原则。

  6. 在线验证: 如果不确定 YAML 格式是否正确,可以使用在线 YAML 验证工具(如 YAML Lint)进行检查。

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐