-
YAML语法规范;
-
YAML文本块得使用;
-
YAML锚点与引用;
-
YAML存量,数据类型约定;
-
YAML对象及数组的使用规则。
YAML语言的设计参考了JSON,XML和SDL等语言。YAML 强调以数据为中心,简洁易读,编写简单。
有意思的命名
YAML全称是"YAML Ain’t a Markup Language"(YAML不是一种置标语言)的递归缩写。
在开发的这种语言时,YAML 的意思其实是:“Yet Another Markup Language”(仍是一种置标语言)。
-
大小写敏感
-
通过缩进表示层级关系
-
禁止使用tab缩进,只能使用空格键
-
缩进的空格数目不重要,只要相同层级左对齐即可
-
使用#表示注释
YAML 支持的数据结构有三种
对象:键值对的集合,又称为映射(mapping)/ 哈希(hashes) / 字典(dictionary)
数组:一组按次序排列的值,又称为序列(sequence) / 列表(list)
纯量(scalars):单个的、不可再分的值
双引号
""
:不会转义字符串里面的特殊字符,特殊字符作为本身想表示的意思。
name: "123\n123"
输出: 123 换行 123
单引号''
:会将字符串里面的特殊字符转义为字符串处理
name: '123\n123'
输出: 123\n123
如果不加引号
将会转义特殊字符,当成字符串处理
|:使用|
标注的文本内容缩进表示的块,可以保留块中已有的回车换行
value: |
hello
world!
输出:hello 换行 world!
+
表示保留文字块末尾的换行,-
表示删除字符串末尾的换行。
value: |
hello
value: |-
hello
value: |+
hello
输出:hello\n hello hello\n\n(有多少个回车就有多少个\n)
注意 “|” 与 文本之间须另起一行
>:使用 >
标注的文本内容缩进表示的块,将块中回车替换为空格,最终连接成一行
value: > hello
world!
输出:hello 空格 world!
注意 “>” 与 文本之间的空格
使用定界符“”(双引号)
、‘’(单引号)
或回车
表示的块,最终表示成一行。
使用 &
定义数据锚点(即要复制的数据),使用 *
引用锚点数据(即数据的复制目的地)
name: &a yaml
book: *a
books:
- java
- *a
- python
输出book: yaml
输出books:[java,yaml,python]
注意*
引用部分不能追加内容
纯量是最基本的、不可再分的值。
value0: 'hello World!'
value1: "hello World!"
value2: hello World!
12 #整数
014 # 八进制整数
0xC #十六进制整数
13.4 #浮点数
1.2e+34 #指数
.inf空值 #无穷大
-
空值
null
或~
表示
-
日期
使用 iso-8601 标准表示日期
date: 2018-01-01t16:59:43.10-05:00
在springboot中yaml文件的时间格式 date: yyyy/MM/dd HH:mm:ss
- 强制类型转换
YAML 允许使用个感叹号!
,强制转换数据类型,单叹号
通常是自定义类型,双叹号
是内置类型。
money: !!str
date: !Boolean
内置类型:
!!int # 整数类型
!!float # 浮点类型
!!bool # 布尔类型
!!str # 字符串类型
!!binary # 也是字符串类型
!!timestamp # 日期时间类型
!!null # 空值
!!set # 集合
!!omap,!!pairs # 键值列表或对象列表
!!seq # 序列,也是列表 !!map # 键值表
Map(属性和值)(键值对)的形式:
key:(空格)v :表示一堆键值对,空格不可省略。
car:
color: red
brand: BMW
car:{color: red,brand: BMW}
相当于json:
{"color":"red","brand":"BMW"}
一组连词线开头的行,构成一个数组。
brand:
- audi
- bmw
- ferrari
brand: [audi,bmw,ferrari]
相当于json
["auri","bmw","ferrari"]
参考
yaml 1.2规范
360doc
阮一峰的网络日志
yaml文件,后缀名为yml,在springcloud中,常用的是application.yml,在使用中遇到很多坑,一定要注意以下几点。
1、每行开头只能是空格,不能使用tab键。
spring:
application:
name: app-itemayiedu-order
spring:
application:
name: app-itemayiedu-order
2、冒号:...
YAML(YAML Ain’t Markup Language)是一种轻量级的数据序列化格式,被广泛用于配置文件、数据传输等场景。对于YAML文件中包含的感叹号,它们通常被用作YAML语法中的特殊字符,表示布尔值、数字、字符串等数据类型。因此,在YAML文件中如果需要使用感叹号本身作为数据内容,需要将其用引号包围起来。例如,在如下的YAML配置文件中,如果需要保存一个字符串"hello!这样就可以避免感叹号被解释为YAML语法中的特殊字符了。
$ pip install yamale
注意:某些平台(例如Mac OS)可能仅随附Python 2,可能未安装pip。 安装Python 3还应该安装pip。 要保留对默认软件的任何系统依赖关系,请考虑将Python 3安装为本地软件包。 请注意,替换系统提供的Python可能会破坏其他软件。 Mac OS用户可能希望研究MacPorts,自制软件或从源代码构建Python 3。 在这三种情况下,都可能需要Apple的Xcode命令行工具(CLT)。 另请参见下面的。
从以下位置下载Yamale: :
临时解压缩
运行python setup.py install (可能必
:cloud_selector: 将您的OpenAPI规范部署到以生成并托管漂亮的REST API文档。
Tinyspec为更冗长的格式提供了一种轻巧且易于阅读的替代方法。 它依靠OpenAPI格式的优势,而无需维护单个大型JSON或YAML文件或使用某些特殊软件,而是使您可以将API端点和模型保留在单独且易于维护的文件中。
可能的输出包括YAML和JSON格式的完整OpenAPI规范,或在的帮助下以HTML格式创建的API文档。
要使用tinyspec ,请全局安装。 使用 :
npm install -g tinyspec
快速入门和演示
要生成API文
Spyc是用纯PHP编写的YAML加载程序/转储程序。 给定一个YAML文档,Spyc将返回一个您可以使用的数组,但是您认为合适。 给定一个数组,Spyc将返回一个字符串,其中包含根据您的数据构建的YAML文档。
YAML是一种非常人性化且用途广泛的数据序列化语言,可用于日志文件,配置文件,自定义协议和作品。 有关更多信息,请参见 。
Spyc支持YAML 1.0规范。
使用Spyc
使用Spyc很简单:
require_once "spyc.php" ;
$ Data = Spyc :: YAMLLoad ( 'spyc.yaml' );
或(如果您喜欢函数语法)
require_once "spyc.php" ;
$ Data = spyc_load_file ( 'spyc.yaml' );
捐款,有人吗?
如果您发现Spyc有用,我会在193b
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-configuration-processor</art
SpringCloud Config概述
分布式系统面临的—配置问题:
微服务意味着要将单体应用中的业务拆分成一个个子服务,每个服务的粒度相对较小,因此系统中会出现大量的服务。由于每个服务都需要必要的配置信息才能运行,所以一套集中式的、动态的配置管理设施是必不可少的。SpringCloud提供了ConfigServer来解决这个问题,我们每一个微服务自己带着一个application.yml,上百...
docker-compose.yml文件详解
Compose允许用户通过一个docker-compose.yml模板文件(YAML 格式)来定义一组相关联的应用容器为一个项目(project)。
Compose模板文件是一个定义服务、网络和卷的YAML文件。Compose模板文件默认路径是当前目录下的docker-compose.yml,可以使用.yml或.yaml作为文件扩展名。
Docker-Compose标准模板文件应该包含``version、services、networks` 三大部分,最关键的是
"YAML Ain't a Markup Language"(YAML不是一种置标语言)的递归缩写,早先YAML的意思其实是:"Yet Another Markup Language"(另外一种置标语言),但为了强调这种语言以数据做为中心,而不是以置标语言为重点,而用返璞词重新命名。
YAML的官方定义很简单,即“一种人性化的数据格式定义语言”,其主要
1. 认识 YAML
YAML是一个类似 XML、JSON 的标记性语言。YAML 强调以数据为中心,并不是以标识语言为重点。因而 YAML 本身的定义比较简单,号称“一种人性化的数据格式语言”。
1.1 YAML 的设计目标:
人类容易阅读
可用于不同程序间的数据交换
适合描述程序所使用的数据结构,特别是脚本语言
丰富的表达能力与可扩展性...