文章背景
在项目进行过程中,经常会遇见需要引用yaml文件,其中最烦人的就是对于yaml文件的数据编写以及拓展,经常会遇见很多大量重复的数据需要ctrl+C/V,yaml文件中的锚点与继承则节省了很多工作,一次编写,其它引用该锚点的内容自动继承(继承功能)。并且如果在引用过程中,需要修改原有的信息的某个键值对,只需要在新的内容中再编写一次该键值对即可(重写功能)
-- yaml 锚点写法 --------------------------
Accesstoken: &accesstoken # 定义一个名为accesstoken的锚点 'Accesstoken': 'eyJraWQiOiJ1c2VyIiwidHlwIjoiSldUIiwiYWxnIjoiSFMyNTYifQ' Base: &base # 定义一个base的锚点,用于记录所有常用的header选项 'Accept': 'application/json, text/plain, */*' 'Accept-Encoding': 'gzip, deflate, br, zstd' 'Accept-Language': 'zh-CN,zh;q=0.9' 'Content-Type': 'application/json;charset=UTF-8' Base_2: &base2 # 定义一个base2的扩展锚点,用于记录所有常用的header选项 <<: *accesstoken # 用于继承Accesstoken的内部所有参数 <<: *base # 用于继承Accesstoken的内部所有参数 Base_3: &base3 'Accept': 'application/json, text/plain, */*' chrome_header: &chrome_header <<: *base2 # 用于继承base2的内部所有参数 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36' firefox_header: <<: *chrome_header 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:125.0) Gecko/20100101 Firefox/125.0' app_4.0_header: <<: *accesstoken <<: *base3 Base_4: # 例如这里在引用base2的内容后,对其中的Accesstoken信息进行修改,则打印后显示的是新值 <<: *base2 'Accesstoken':'eyJraWQiOiJ1c2VyIiwidHlwIjoiSldUIiwiYWxnIjoiSFMyNTYifQajiejrijqkj'