【问题标题】:Recommended strategy for emulating REST endpoints in command-line API?在命令行 API 中模拟 REST 端点的推荐策略?
【发布时间】:2025-12-04 20:05:01
【问题描述】:

背景

我正在为 HPC 集群设计一个命令行 API(它的 API 最终也可能在网络上发布)。

问题

我想知道在命令行上模拟 REST“端点”的推荐策略是什么。

我可以看到两个选项:

  1. 为每个端点使用单独的命令/脚本文件/二进制文件,命令行标志仅用于过滤和选择输出格式(非默认格式)。然后,“项目”的端点将是某个文件夹中的单独命令,以便您可以使用 myrestfulcliapi/projects [optional other flags] 执行它
  2. 使用单个命令/脚本文件/二进制文件,并选择带有命令行标志的端点,以便可以使用myrestfulcliapi --endpoint=projects [optional other flags] 执行一个端点

如果对此没有既定的最佳实践,您认为各个选项(技术上、概念上或任何其他方面)的优缺点是什么,您会推荐哪一个?

【问题讨论】:

    标签: api rest command-line command-line-arguments restful-architecture


    【解决方案1】:

    好的,所以在喝了几杯咖啡后仍然没有答案,我终于找到了我最喜欢的解决方案:

    结合使用两者:为每个端点创建单独的脚本,由一个简单的 shell 脚本组成,该脚本又调用另一个文件(python、Go 二进制文件或其他文件),其中端点作为标志添加。

    所以,我将有一个名为“projects”的 bash 脚本(因为我在 linux 中),其中包含:

    #!/bin/bash
    python api.py --endpoint="projects" "$@"
    

    (..."$@" 部分只是将命令行标志转发到 python 脚本)

    【讨论】: