@@ -27,6 +27,15 @@ func SetupServicesRoutes(rg *gin.RouterGroup, servicesService *services.ServiceI
2727 rg .GET ("/services/:sid/:type" , servicesHandler .GetServiceByID )
2828 rg .GET ("/services/available-instances" , servicesHandler .GetAvailableInstances )
2929 rg .POST ("/services/assemble" , servicesHandler .AssembleService )
30+
31+ // 服务操作路由
32+ rg .POST ("/services/:sid/:type/start" , servicesHandler .StartService )
33+ rg .POST ("/services/:sid/:type/stop" , servicesHandler .StopService )
34+ rg .POST ("/services/:sid/:type/restart" , servicesHandler .RestartService )
35+ rg .DELETE ("/services/:sid/:type" , servicesHandler .DeleteService )
36+ rg .PUT ("/services/:sid/:type/rename" , servicesHandler .RenameService )
37+ rg .POST ("/services/:sid/:type/dissolve" , servicesHandler .DissolveService )
38+ rg .POST ("/services/:sid/:type/sync" , servicesHandler .SyncService )
3039}
3140
3241// GetServices 获取所有服务
@@ -98,3 +107,124 @@ func (h *ServicesHandler) AssembleService(c *gin.Context) {
98107 "message" : "组装服务成功" ,
99108 })
100109}
110+
111+ // StartService 启动服务
112+ func (h * ServicesHandler ) StartService (c * gin.Context ) {
113+ sid := c .Param ("sid" )
114+ serviceType := c .Param ("type" )
115+
116+ if err := h .servicesService .StartService (sid , serviceType ); err != nil {
117+ c .JSON (http .StatusInternalServerError , gin.H {"error" : "启动服务失败: " + err .Error ()})
118+ return
119+ }
120+
121+ c .JSON (http .StatusOK , gin.H {
122+ "success" : true ,
123+ "message" : "启动服务成功" ,
124+ })
125+ }
126+
127+ // StopService 停止服务
128+ func (h * ServicesHandler ) StopService (c * gin.Context ) {
129+ sid := c .Param ("sid" )
130+ serviceType := c .Param ("type" )
131+
132+ if err := h .servicesService .StopService (sid , serviceType ); err != nil {
133+ c .JSON (http .StatusInternalServerError , gin.H {"error" : "停止服务失败: " + err .Error ()})
134+ return
135+ }
136+
137+ c .JSON (http .StatusOK , gin.H {
138+ "success" : true ,
139+ "message" : "停止服务成功" ,
140+ })
141+ }
142+
143+ // RestartService 重启服务
144+ func (h * ServicesHandler ) RestartService (c * gin.Context ) {
145+ sid := c .Param ("sid" )
146+ serviceType := c .Param ("type" )
147+
148+ if err := h .servicesService .RestartService (sid , serviceType ); err != nil {
149+ c .JSON (http .StatusInternalServerError , gin.H {"error" : "重启服务失败: " + err .Error ()})
150+ return
151+ }
152+
153+ c .JSON (http .StatusOK , gin.H {
154+ "success" : true ,
155+ "message" : "重启服务成功" ,
156+ })
157+ }
158+
159+ // DeleteService 删除服务
160+ func (h * ServicesHandler ) DeleteService (c * gin.Context ) {
161+ sid := c .Param ("sid" )
162+ serviceType := c .Param ("type" )
163+
164+ if err := h .servicesService .DeleteService (sid , serviceType ); err != nil {
165+ c .JSON (http .StatusInternalServerError , gin.H {"error" : "删除服务失败: " + err .Error ()})
166+ return
167+ }
168+
169+ c .JSON (http .StatusOK , gin.H {
170+ "success" : true ,
171+ "message" : "删除服务成功" ,
172+ })
173+ }
174+
175+ // RenameService 重命名服务
176+ func (h * ServicesHandler ) RenameService (c * gin.Context ) {
177+ sid := c .Param ("sid" )
178+ serviceType := c .Param ("type" )
179+
180+ var req struct {
181+ Name string `json:"name" binding:"required"`
182+ }
183+
184+ if err := c .ShouldBindJSON (& req ); err != nil {
185+ c .JSON (http .StatusBadRequest , gin.H {"error" : "请求参数错误: " + err .Error ()})
186+ return
187+ }
188+
189+ if err := h .servicesService .RenameService (sid , serviceType , req .Name ); err != nil {
190+ c .JSON (http .StatusInternalServerError , gin.H {"error" : "重命名服务失败: " + err .Error ()})
191+ return
192+ }
193+
194+ c .JSON (http .StatusOK , gin.H {
195+ "success" : true ,
196+ "message" : "重命名服务成功" ,
197+ })
198+ }
199+
200+ // DissolveService 解散服务
201+ func (h * ServicesHandler ) DissolveService (c * gin.Context ) {
202+ sid := c .Param ("sid" )
203+ serviceType := c .Param ("type" )
204+
205+ if err := h .servicesService .DissolveService (sid , serviceType ); err != nil {
206+ c .JSON (http .StatusInternalServerError , gin.H {"error" : "解散服务失败: " + err .Error ()})
207+ return
208+ }
209+
210+ c .JSON (http .StatusOK , gin.H {
211+ "success" : true ,
212+ "message" : "解散服务成功" ,
213+ })
214+ }
215+
216+ // SyncService 同步服务
217+ func (h * ServicesHandler ) SyncService (c * gin.Context ) {
218+ sid := c .Param ("sid" )
219+ serviceType := c .Param ("type" )
220+
221+ if err := h .servicesService .SyncService (sid , serviceType ); err != nil {
222+ c .JSON (http .StatusInternalServerError , gin.H {"error" : "同步服务失败: " + err .Error ()})
223+ return
224+ }
225+
226+ c .JSON (http .StatusOK , gin.H {
227+ "success" : true ,
228+ "message" : "同步服务成功" ,
229+ })
230+ }
0 commit comments