| 268 | } |
| 269 | |
| 270 | func (mod *RestAPI) Start() error { |
| 271 | if mod.replaying { |
| 272 | return fmt.Errorf("the api is currently in replay mode, run api.rest.replay off before starting it") |
| 273 | } else if err := mod.Configure(); err != nil { |
| 274 | return err |
| 275 | } |
| 276 | |
| 277 | mod.SetRunning(true, func() { |
| 278 | var err error |
| 279 | |
| 280 | if mod.isTLS() { |
| 281 | mod.Info("api server starting on https://%s", mod.server.Addr) |
| 282 | err = mod.server.ListenAndServeTLS(mod.certFile, mod.keyFile) |
| 283 | } else { |
| 284 | mod.Info("api server starting on http://%s", mod.server.Addr) |
| 285 | err = mod.server.ListenAndServe() |
| 286 | } |
| 287 | |
| 288 | if err != nil && err != http.ErrServerClosed { |
| 289 | panic(err) |
| 290 | } |
| 291 | }) |
| 292 | |
| 293 | return nil |
| 294 | } |
| 295 | |
| 296 | func (mod *RestAPI) Stop() error { |
| 297 | if mod.recording { |