Ain Executables深度解析:$(command)在模板中执行脚本,动态获取JWT Token就这么简单

发布时间:2026/10/21 11:16:27

Ain Executables深度解析:$(command)在模板中执行脚本,动态获取JWT Token就这么简单 Ain Executables深度解析$(command)在模板中执行脚本动态获取JWT Token就这么简单【免费下载链接】ainA HTTP API client for the terminal项目地址: https://gitcode.com/gh_mirrors/ai/ainAin 是一个运行在终端的 HTTP API 客户端可以用模板文件发起 API 请求。而它的 Executables 功能$(command)语法允许你在模板中直接执行任意脚本把命令的输出动态填进请求里——动态获取 JWT Token 就是这么简单。 Executables 是什么Ain 的模板文件.ain后缀由若干区块组成如[Host]、[Headers]、[Body]等。除了内置的环境变量${VAR}Ain 还支持Executables模板中任何$(command arg1 arg2)形式的表达式都会被替换为该命令的标准输出STDOUT。举个例子$(echo 1)会被直接替换成1。它的第一个词是$PATH中可执行的命令其余部分是参数。实现代码位于 internal/pkg/parse/executable.go多个 Executables 会并行执行并且受[Config]中Timeout的统一超时控制。几个关键特性✅与变量无缝组合环境变量先替换再执行命令所以$(cat ${ENV}/token.json)完全可行✅只替换一次命令返回的$(...)或${...}文本不会被二次处理避免意外❌[Config]区块除外超时必须在执行命令前确定因此该区块不支持 Executables 实战动态获取 JWT Token很多 REST API 都要求Authorization: Bearer token头。手动复制粘贴 Token 既繁琐又容易过期Ain 官方示例就用 Executables 优雅地解决了这个问题。第一步写一个获取 Token 的模板 examples/dummyjson.com/advanced/get-token.ain[Host] auth/login [Method] Post [Headers] Content-Type: application/json [Body] { username: emilys, password: emilyspass, expiresInMins: 30 }运行ain base.ain get-token.ain就能拿到完整的 JWT 响应。第二步在 examples/dummyjson.com/advanced/auth.ain 中嵌套调用自己用jq提取 Token[Host] auth/ [Headers] Authorization: Bearer $(bash -c ain base.ain get-token.ain | jq -r .accessToken)⚠️ 命令参数含空格或管道时需要用bash -c加引号包裹整个命令串这是 Executables 唯一需要留意的书写细节。最后把auth.ain加进任意请求即可自动携带 Tokenain base.ain auth.ain products/get.ain这样就实现了请求前自动登录、自动注入 Token的完整流程整个过程无需任何额外配置文件。️ 实用技巧与边界情况引号需要更复杂的管道逻辑时用sh -c find . | fzf -m | xargs echo这类命令串写法引号内可再用\、\转义相关用例见 test/e2e/templates/ok-quotes-in-executables.ain转义参数中出现)等结束符时用反引号转义如$(node -e console.log(Hi))变量先行${VAR}在命令执行前就已替换因此$(printf ${VAR})这种变量进命令的写法可用见 test/e2e/templates/ok-env-inside-executable.ain调试加-p参数可打印 Ain 最终组装出的 curl/wget/httpie 命令Token 是否正确注入一目了然 小结Executables 让 Ain 从API 客户端升级为API 工作流引擎Token 刷新、分页参数、动态 ID 都能以一行$(command)融入模板。配合多模板组合base.ainauth.ain 具体接口文件复杂认证场景也能保持极简。更多完整用法可以参考 examples/dummyjson.com/advanced/ 和 README.md 中的 Executables 章节。【免费下载链接】ainA HTTP API client for the terminal项目地址: https://gitcode.com/gh_mirrors/ai/ain创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
延伸阅读

更多相关文章

2026/10/21 12:10:13

PyQT结合CNN实现水稻病害检测:从模型训练到桌面应用完整指南

1. 项目拆解:从毕设题目到完整系统1.1 这个题目到底在做什么先说结论:这是一个典型的深度学习图像分类项目,目标是用卷积神经网络自动识别水稻叶片上的病害种类,再把训练好的模型包装成一个桌面软件,让用户能选一张图片…

2026/10/21 12:10:13

基于YOLOv8的吸烟喝水打电话实时行为检测系统全解析

1. 项目概述与核心价值1.1 这个检测系统到底能做什么我做了这么久的计算机视觉项目,说实话,行为检测这类需求始终是最常被问到的方向之一。但很多朋友一上来就想着复现识别猫狗、识别车牌那种公开项目,真正落到细分场景里的反而不多。今天要拆…

2026/10/21 12:10:13

ThinkPHP+Vue电商推荐系统落地:物品协同过滤与混合召回实战

1. 为什么我给电商项目加了这套推荐系统前阵子帮某电商团队做技术方案,聊到首页转化率上不去的问题。打开后台一看,运营还在手动配置“热销TOP10”和“小编推荐”两个固定位,用户进来看到的商品几乎是一样的。问题很明显:同一个喜…

2026/10/21 12:10:13

KAN网络与Stacking集成提升回归预测精度:从原理到实战

做回归预测的人这两年应该都有同感:单模型的效果越来越难突破,调参调到头也就是零点几个百分点的提升。我这次把一个老思路和一个新结构组合起来试了一把——Stacking集成框架,底层放传统机器学习模型和KAN网络,目标函数统一走回归…

2026/10/21 12:10:13

鸿蒙Flutter端侧服务CORS跨域适配:shelf_cors_headers中间件实战

直接从一个真实的场景说起。最近在做某个设备管理Demo的鸿蒙化改造时,需要在鸿蒙设备上跑起一个基于Flutter的端侧HTTP服务,负责被同局域网内的其他设备、Web面板和分布式组件访问。代码层面最初用的是Dart生态里很常见的shelf框架,但很快被跨…

2026/10/21 12:05:10

AI辅助学术专著写作:从任务卡片到初稿的完整流程

这几年被问得最多的一个问题,是“能不能让AI帮我写一本书”。来问的朋友大多是高校研究者和资深工程师,手里攒了不少素材、案例甚至整章旧稿,却迟迟没有成书——不是没能力,而是几十万字的体量、常年断断续续的时间、反复纠结的结…

2026/10/21 4:53:08

金融AI落地指南:从调研报告到技术选型与工程实践

简介:这份PDF报告聚焦2025年金融服务业中国AI现状与趋势,面向金融科技从业者、AI战略规划人员及关注行业数字化转型的研究者,帮助读者把握生成式AI在银行、支付、交易等场景中的落地路径与投资方向。资源包内含1个PDF文件,大小约1…

2026/10/21 0:00:35

交通流仿真实战:IDM跟驰与MOBIL换道模型参数调优与避坑指南

简介:这份资源是面向交通工程学习者与Python开发者的微观交通流仿真项目,核心实现智能驾驶模型(IDM)下的车辆跟驰与换道行为,可用于理解速度、密度与流量之间的动态关系,适合具备Python基础、希望深入交通模…

2026/10/21 0:00:35

揭穿智能体表面顺从:用追踪代码重建任务执行确定性

1. 表面顺从不是智能体的“礼貌”,而是任务执行链路上的隐性断点最近在调试一个跨平台长周期任务调度系统时,我反复遇到一种令人困惑的现象:智能体在用户指令发出后,几乎秒级响应“已收到”“正在处理”“请稍候”,UI上…

2026/10/21 0:00:35

统一内存+量化:锐龙AI Max PRO 400如何本地跑320B大模型

这段时间硬件圈和AI圈都在传一个事:AMD锐龙AI Max PRO 400系列把最高192GB统一内存搬进了PC形态的产品里,按宣传口径,本地跑320B参数的大家伙不再是纸面概念。我第一反应倒不是“内存真大”,而是这话背后的含金量——它把过去只能…

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
☎咨询二维码 ☎ ↑