Process Compose API参考:REST接口和客户端开发指南

【免费下载链接】process-compose Process Compose is a simple and flexible scheduler and orchestrator to manage non-containerized applications. 【免费下载链接】process-compose 项目地址: https://gitcode.com/gh_mirrors/pr/process-compose

Process Compose 是一款简单灵活的调度和编排工具,专为管理非容器化应用程序设计。本文将详细介绍其REST API接口和客户端开发指南,帮助开发者快速集成和扩展Process Compose功能。

快速了解Process Compose API架构

Process Compose提供了完整的RESTful API接口,通过HTTP协议实现对非容器化应用的远程管理。其API架构基于Gin框架构建,支持标准HTTP方法和WebSocket实时通信,适用于构建自定义监控面板、自动化脚本或第三方集成。

Process Compose API架构示意图 图:Process Compose API与MCP集成架构

API核心功能

  • 进程管理:启动、停止、重启和扩展进程
  • 状态监控:实时获取进程和项目运行状态
  • 日志管理:获取和截断进程日志
  • 命名空间控制:管理进程命名空间
  • 依赖图可视化:获取进程间依赖关系

REST API接口详解

Process Compose的REST API接口遵循RESTful设计原则,所有接口均在src/api/routes.go文件中定义,支持标准HTTP状态码和JSON响应格式。

认证机制

API访问默认需要认证令牌,通过config.TokenHeader头传递。令牌配置在config/settings.go中,长度至少20个字符:

// TokenAuthMiddleware enforces API access using an auth token if configured.
func TokenAuthMiddleware(token string) gin.HandlerFunc {
    return func(c *gin.Context) {
        reqToken := c.GetHeader(config.TokenHeader)
        if reqToken != token {
            c.AbortWithStatus(http.StatusUnauthorized)
            return
        }
        c.Next()
    }
}

核心API端点

方法 端点 功能描述
GET /processes 获取所有进程列表
GET /process/:name 获取指定进程详情
POST /process/start/:name 启动指定进程
PATCH /process/stop/:name 停止指定进程
POST /process/restart/:name 重启指定进程
PATCH /process/scale/:name/:scale 扩展进程实例数量
GET /process/logs/:name/:endOffset/:limit 获取进程日志
DELETE /process/logs/:name 截断进程日志
GET /project/state 获取项目状态
POST /project/configuration 重新加载项目配置

WebSocket实时接口

Process Compose提供WebSocket接口用于实时监控:

  • 日志流/process/logs/ws - 实时获取进程日志
  • 状态流/process/states/ws - 实时获取进程状态更新

客户端开发指南

Process Compose提供了Go语言客户端库,位于src/client/目录,支持Unix域套接字和TCP两种连接方式。

客户端初始化

// 创建Unix域套接字客户端
client := NewUdsClient(sockPath, logLength)

// 创建TCP客户端
client := NewTcpClient(host, port, logLength)

核心客户端方法

客户端API封装了所有REST接口功能,主要方法包括:

// 进程管理
client.StartProcess(name string) error
client.StopProcess(name string) error
client.RestartProcess(name string) error
client.ScaleProcess(name string, scale int) error

// 状态监控
client.GetProcessState(name string) (*types.ProcessState, error)
client.GetProjectState(withMemory bool) (*types.ProjectState, error)

// 日志管理
client.GetProcessLog(name string, offsetFromEnd, limit int) ([]string, error)
client.TruncateProcessLogs(name string) error
client.GetLogsAndSubscribe(name string, observer pclog.LogObserver) error

实时日志订阅示例

// 创建日志观察者
observer := &MyLogObserver{}

// 订阅进程日志
err := client.GetLogsAndSubscribe("my-process", observer)
if err != nil {
    log.Fatal(err)
}

// 实现日志观察者接口
type MyLogObserver struct{}

func (o *MyLogObserver) WriteString(message string) (int, error) {
    fmt.Println("Received log:", message)
    return len(message), nil
}

实际应用场景

1. 构建自定义监控面板

通过API获取进程状态和日志数据,结合前端框架构建自定义监控界面:

Process Compose TUI界面 图:Process Compose终端用户界面,可通过API实现类似功能

2. 自动化部署脚本

使用API实现自动化部署流程:

# 启动应用进程
curl -X POST http://localhost:8080/process/start/my-app \
  -H "X-Process-Compose-Token: your-auth-token"

# 检查进程状态
curl http://localhost:8080/process/my-app \
  -H "X-Process-Compose-Token: your-auth-token"

3. 集成CI/CD流水线

在CI/CD流程中集成Process Compose API,实现测试环境的自动部署和清理:

// Go语言CI脚本示例
client := NewTcpClient("localhost", 8080, 1000)
defer client.ShutDownProject()

// 启动测试环境
err := client.StartNamespace("test-env")
if err != nil {
    log.Fatal(err)
}

// 运行测试...

// 停止测试环境
err = client.StopNamespace("test-env")

API文档与工具

Process Compose集成了Swagger文档,启动服务后可通过/swagger/index.html访问完整API文档。所有API定义和类型声明可在以下文件中找到:

  • API路由定义:src/api/routes.go
  • 客户端实现:src/client/client.go
  • 数据类型定义:src/types/process.gosrc/types/project.go

总结

Process Compose提供了强大而灵活的API接口,使开发者能够轻松构建自定义工具和集成方案。通过REST API和WebSocket,可实现对非容器化应用的全面管理和监控。客户端库进一步简化了集成过程,支持Unix域套接字和TCP两种连接方式,满足不同场景需求。

无论是构建监控面板、自动化脚本还是集成CI/CD流水线,Process Compose API都能提供可靠的技术支持,帮助团队更高效地管理和编排非容器化应用程序。

【免费下载链接】process-compose Process Compose is a simple and flexible scheduler and orchestrator to manage non-containerized applications. 【免费下载链接】process-compose 项目地址: https://gitcode.com/gh_mirrors/pr/process-compose

Logo

脑启社区是一个专注类脑智能领域的开发者社区。欢迎加入社区,共建类脑智能生态。社区为开发者提供了丰富的开源类脑工具软件、类脑算法模型及数据集、类脑知识库、类脑技术培训课程以及类脑应用案例等资源。

更多推荐