Ain模板文件语法详解:8大Section从[Host]到[Backend]一次看懂.ain格式的完全指南

发布时间:2026/8/26 13:56:29

Ain模板文件语法详解:8大Section从[Host]到[Backend]一次看懂.ain格式的完全指南
Ain模板文件语法详解8大Section从[Host]到[Backend]一次看懂.ain格式的完全指南【免费下载链接】ainA HTTP API client for the terminal项目地址: https://gitcode.com/gh_mirrors/ai/ainAin 是一款运行在终端里的 HTTP API 客户端是 Postman、Paw、Insomnia 的命令行替代品。它的核心是.ain模板文件一种用 8 大 Section[Host]、[Query]、[Backend] 等描述调哪个接口、用什么方法、带哪些参数的纯文本格式。本文带你完整看懂 .ain 语法——每个 Section 怎么写、跨文件时是追加还是覆盖、变量与命令如何嵌入一次建立对模板格式的全部认知。.ain 模板文件长什么样10 秒上手一个 .ain 文件就是若干段落标题 内容行。下面是一个涵盖全部 8 大 Section 的完整示例[Host] https://dummyjson.com/product/${ID} [Query] limit10 [Headers] Content-Type: application/json [Method] GET [Body] { title: New title } [Config] Timeout5 [Backend] curl [BackendOptions] -sS首次使用推荐先用 Ain 自带的模板生成器运行ain -b basic-template.ain它会检测系统里可用的后端curl / wget / httpie并生成一个可直接运行的起点文件再用ain basic-template.ain --vars PORT8080发起请求即可。8大Section速查表跨文件是追加还是覆盖Ain 允许一次传入多个模板文件数据按 Section 合并。理解每个 Section 的合并策略是掌握 .ain 格式的关键Section作用跨文件行为必填[Host]API 地址域名 路径追加 append✅[Query]查询参数? 后面的键值对追加 append[Headers]请求头追加 append[Method]HTTP 方法 GET/POST/PATCH…覆盖 overwrite[Body]请求体原样发送覆盖 overwrite[Config]Ain 自身配置覆盖 overwrite[Backend]调用引擎 curl / wget / httpie覆盖 overwrite✅[BackendOptions]透传给后端命令的选项追加 append 几条通用规则Section 名称不区分大小写、忽略前后空白约定俗成用 CamelCase 左对齐书写同一个文件里不能重复定义同一个 Section段落内容到下一个 Section 开始或文件结尾为止每行内容中#之后都是注释会被忽略只有[Host]和[Backend]是必填的其余按需书写。Section 的完整定义可以在源码 internal/pkg/parse/sections.go 中看到语法测试集见 grammars/tests.ain。逐个拆解从 [Host] 到 [BackendOptions][Host]唯一必填的地址段写完整 URL 的任意部分多行会拼接成一个地址。经典用法基础文件里只写域名具体接口文件里只写路径例如http://localhost:3000/api/auth/login。最终 URL 会自动做 URL 编码整个模板组合后必须是一个且仅一个有效地址。[Query]自动拼接查询参数每行一个keyvalueAin 会用分隔符默认可在[Config]里用QueryDelim自定义连接后追加到 URL 末尾并自动 URL 编码。page3与page 3等价空格会被编码为。适合把多个接口共用的参数如API_KEYxxx放进一个基础文件。[Headers]一行一个请求头[Headers] Authorization: Bearer $(./get-jwt-token.sh) Content-Type: application/json注意这里可以直接嵌入可执行命令动态生成 Token见下文。[Method]不写就默认 GET写POST、PATCH、DELETE等省略时走后端默认curl / wget / httpie 都是 GET。[Body]原样发送的请求体内容会保留格式、去掉首尾空行后写入临时文件再以文件形式交给后端发送。两个实用细节加-l参数可保留临时文件加-p参数只打印不执行时请求体会落盘为ain-body随机数文件方便把命令分享出去后仍能复现。[Config]Ain 专属开关只有两个参数都不区分大小写参数写法说明超时Timeout10单位秒覆盖整个执行过程不写则不超时。唯一不允许使用可执行命令的 Section查询分隔符QueryDelim;拼接 [Query] 行时用的分隔符默认[Backend]选择 curl、wget 或 httpie三选一决定实际发请求的引擎。可以用ain -b生成模板时自动探测本机装了哪个并帮你选上。[BackendOptions]透传给后端的原始选项每行一个选项原样拼到后端命令里。例如给 curl 加-sS去掉进度条[Backend] curl [BackendOptions] -sS # 管道中禁用进度条变量与可执行命令让模板活起来 这是 .ain 格式最强大的两处能力环境变量${VAR}模板里${ID}会从环境中取值替换。值来自 shell 环境、当前目录的.env文件或命令行--vars ID123--vars优先级最高且在所有模板文件名之后书写。可执行命令$(命令 参数)命令的 STDOUT 会替换掉整个表达式例如Authorization: Bearer $(bash -c ./get-login.sh | jq -r .token)就能自动换取 JWT。替换顺序是先环境变量、后可执行命令所以命令里还能引用${VAR}且每类都只替换一次。多文件组合实战base.ain 组织你的 API 项目利用追加 / 覆盖策略可以把 API 组织成文件夹层级。例如仓库示例里 examples/dummyjson.com/advanced/base.ain 定义公共部分[Host] https://dummyjson.com/ [Backend] curl [Config] Timeout5 [BackendOptions] -sS具体接口只写差异部分如 examples/dummyjson.com/advanced/products/add.ain[Host] products/add [Method] POST [Body] { title: New title }两条命令组合即可ain examples/dummyjson.com/advanced/base.ain examples/dummyjson.com/advanced/products/add.ain[Host] 追加拼出完整地址[Backend]、[Body] 等由具体文件覆盖——这就是 .ain 格式文件即 API 集合的设计精髓。更多示例见 examples/dummyjson.com/simple/ 目录。注释、转义与常见坑3 个符号要记牢符号含义想要字面量时#注释反引号转义#${环境变量${$(可执行命令$(其他高频要点URL 编码路径和查询参数自动编码已编码的保持原样需要字面的和%时请手动写成%2B、%25排错模板写错时 Ain 会报 Fatal 错误并给出文件名、行号和上下文请求发不出去就加-p查看最终生成的 curl/wget/httpie 命令文件名结尾加!可先用编辑器修改再运行如ain get-post.ain!。核心文件速查想深入源码或找更多样例从这些入口开始Section 解析逻辑internal/pkg/parse/sections.go语法测试集含各种大小写/转义边界情况grammars/tests.ain简单示例examples/dummyjson.com/simple/get-product-by-id.ain进阶示例base 具体接口组合examples/dummyjson.com/advanced/官方完整文档README.md一句话总结.ain 格式 8 个 Section 描述怎么调接口 ${}/$()注入动态值 多文件按追加/覆盖策略组合。看懂这张速查表你就能直接上手管理自己的 API 模板库了。【免费下载链接】ainA HTTP API client for the terminal项目地址: https://gitcode.com/gh_mirrors/ai/ain创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

HyperLine Git状态栏插件详解:分支、脏文件与推送状态一栏尽览

HyperLine Git状态栏插件详解:分支、脏文件与推送状态一栏尽览

2026/8/26 13:56:29

HyperLine Git状态栏插件详解:分支、脏文件与推送状态一栏尽览 【免费下载链接】hyperline ✨ Status line plugin for Hyper ✨ 项目地址: https://gitcode.com/gh_mirrors/hy/hyperline HyperLine 是一款为 Hyper 终端打造的轻量级状态栏插件(s…

机器学习在健康管理中糖尿病风险预测挑战

机器学习在健康管理中糖尿病风险预测挑战

2026/8/26 13:46:29

糖尿病已成为全球范围内影响人群健康的主要慢性疾病之一。随着生活方式的变化和遗传因素的作用,糖尿病的发病率持续上升。通过早期预测糖尿病的发生,可以有效降低相关疾病的风险,并改善患者的生活质量。Diabetes SP20竞赛便是基于这一需求,利用机器学习技术来帮助预测糖尿病…

基于本地模型的AI编程学习:从Prompt设计到Agent实践

基于本地模型的AI编程学习:从Prompt设计到Agent实践

2026/8/26 13:46:29

在实际开发中,把 AI 当作学习工具,已经不再是“要不要用”的问题,而是“怎么用才不会变成复制粘贴”。Hacker News 上经常有开发者发起同一个讨论:How are you using AI to learn? 翻看评论区会发现,真正能坚持下来的…

C++起步知识

C++起步知识

2026/8/26 14:46:31

目录1 域2 namespace 关键字2.1 命名空间的定义2.2 命名空间的使用2.3 命名空间的作用3 缺省参数4 函数重载5 引用5.1 引用的概念5.2 const 引用5.3 引用的使用场景5.4 引用和指针的区别6 inline 关键字7 nullptr1 域 在 C 中,域包括了函数局部域,全局域…

【Kingbase人大金仓】账号密码重置忘记密码重置

【Kingbase人大金仓】账号密码重置忘记密码重置

2026/8/26 14:46:31

目录 1、停止数据库服务: 2、修改配置文件(修改后可无需密码登录数据库): 3、启动数据库服务: 4、登录数据库: 5、登录数据库之后,执行修改设置账号密码命令: 6、修改配置文件…

DxWrapper 老游戏兼容修复:3 步让 Windows 10/11 重新跑得动老游戏

DxWrapper 老游戏兼容修复:3 步让 Windows 10/11 重新跑得动老游戏

2026/8/26 14:46:31

DxWrapper 老游戏兼容修复:3 步让 Windows 10/11 重新跑得动老游戏 【免费下载链接】dxwrapper Fixes compatibility issues with older games running on Windows 10/11 by wrapping DirectX dlls. Also allows loading custom libraries with the file extension .asi into g…

如何在Neptune Mutual报告保险事故:Incident Report与Dispute争议完整用户指南

如何在Neptune Mutual报告保险事故:Incident Report与Dispute争议完整用户指南

2026/8/26 14:46:31

如何在Neptune Mutual报告保险事故:Incident Report与Dispute争议完整用户指南 【免费下载链接】app.neptunemutual.com 🔱 An open source interface for the Neptune Mutual App 项目地址: https://gitcode.com/gh_mirrors/ap/app.neptunemutual.com…

Simple Live 完整上手指南:一个 App 看遍 B站、抖音、虎牙、斗鱼的直播

Simple Live 完整上手指南:一个 App 看遍 B站、抖音、虎牙、斗鱼的直播

2026/8/26 14:46:31

Simple Live 完整上手指南:一个 App 看遍 B站、抖音、虎牙、斗鱼的直播 【免费下载链接】dart_simple_live 简简单单的看直播 项目地址: https://gitcode.com/GitHub_Trending/da/dart_simple_live 看直播的人大概都经历过这样的烦恼:B站、抖音、…

网络工程师注意:Netmiko批量管理设备,3小时变3分钟

网络工程师注意:Netmiko批量管理设备,3小时变3分钟

2026/8/26 14:36:31

每天你是否还仍旧在以手动这种方式SSH登录几十台设备, 一条一条、逐个逐个地去敲命令? 熬夜进行巡检的活动, 对配置进行批量修改, 只要手抖那么一下, 就都得重新再来一次。正好有个兄弟!他就是个例子, 上周的时候他向我吐槽, 为怎么样去改三百台交换机的VLAN, 加班…

[光学原理与应用-521]:对光的错误理解与纠偏

[光学原理与应用-521]:对光的错误理解与纠偏

2026/8/26 1:50:39

首先光是一种能量的载体和形态,宏观上观察到的光是由无数个微观的光量子组成的,每个光子在产生的瞬间,其在真空的空间中以确定不变的速度沿着一个初始的方向一直向前,在微观层面,每个光量子的运动轨迹是以波函数所展现…

SIP通话转接原理与REFER方法实战解析

SIP通话转接原理与REFER方法实战解析

2026/8/26 1:49:16

1. 通话转接不是“挂断再拨号”,而是SIP会话的动态重定向你有没有遇到过这样的场景:客服坐席A正在和客户通电话,突然需要把这通对话无缝转给专家坐席B,客户完全感知不到中间的断连——既没听到忙音,也没被要求重新拨号…

Kolla-ansible单节点OpenStack部署实战:从环境准备到排坑指南

Kolla-ansible单节点OpenStack部署实战:从环境准备到排坑指南

2026/8/24 21:16:09

1. 为什么选择Kolla-ansible来部署单节点OpenStack?如果你正在寻找一种能把OpenStack从“概念”快速变成“可用的实验环境”的方法,那么Kolla-ansible几乎是当前最主流、最省心的选择。我见过太多人卡在手动编译依赖、配置服务、处理版本冲突的泥潭里&am…

Python random 模块常用函数详解:从入门到实战

Python random 模块常用函数详解:从入门到实战

2026/8/26 0:05:45

目录 1. 引言2. 准备工作3. 基础随机函数4. 序列相关函数5. 随机种子与复现6. 实战案例7. 注意事项8. 常见问题与排查9. 总结 1. 引言 摘要: 本文系统介绍 Python 标准库 random 模块中最常用的随机数生成函数。内容涵盖基础随机函数(random()、unifor…

Hermes接入团队协作后,我推翻了三个效率假设

Hermes接入团队协作后,我推翻了三个效率假设

2026/8/26 0:05:45

聊《Hermes真能提效吗?先看流程里最慢的那一步》之前,先说一句实在的:别急着背概念,先看它在真实项目里到底解决什么问题。摘要团队把 Hermes 接进项目三个月后,交付速度没有提升反而慢了。复盘后发现,最先…

免费AI大模型调教指南:打造专属网文写作助手

免费AI大模型调教指南:打造专属网文写作助手

2026/8/26 0:05:45

1. 先搞清楚“AI小说扩展模式”到底能帮你做什么如果你是一个刚开始写网文、或者卡在L3级别以下的作者,最头疼的可能是情节推进不下去、人物对话干瘪,或者世界观设定不够丰满。自己对着空白文档硬憋,效率很低。这时候,一个能理解你…

摆脱论文困扰!盘点2026年全网爆红的的AI论文写作工具

摆脱论文困扰!盘点2026年全网爆红的的AI论文写作工具

2026/8/22 2:02:26

一天写完毕业论文在2026年已不再是天方夜谭。2026年最炸裂、实测能大幅提速的AI论文写作工具,覆盖选题构思、文献整理、内容生成、格式排版等核心场景,真正帮你高效搞定论文难题。 一、全流程王者:一站式搞定论文全链路(一天定稿首…

导师推荐!2026最新AI论文工具测评与实用推荐

导师推荐!2026最新AI论文工具测评与实用推荐

2026/8/22 4:13:47

2026年真正好用的AI论文工具,核心看生成的论文质量、低AI味、格式正确、学术适配四大指标。综合实测,千笔AI、ThouPen、豆包、DeepSeek、Grammarly 是当前最值得推荐的梯队,覆盖从免费到付费、从中文到英文、从文科到理工的全场景需求。 一、…

告别游戏崩溃:XCOM 2模组管理器的智能革命

告别游戏崩溃:XCOM 2模组管理器的智能革命

2026/8/22 1:32:34

告别游戏崩溃:XCOM 2模组管理器的智能革命 【免费下载链接】xcom2-launcher The Alternative Mod Launcher (AML) is a replacement for the default game launchers from XCOM 2 and XCOM Chimera Squad. 项目地址: https://gitcode.com/gh_mirrors/xc/xcom2-lau…