status

package module
v0.1.3 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Dec 29, 2025 License: MIT Imports: 9 Imported by: 1

README

GoREST Status Plugin

CI Go Report Card License

Status check endpoint plugin for GoREST framework.

Installation

go get github.com/nicolasbonnici/gorest-status

Usage

import (
	"github.com/nicolasbonnici/gorest/pluginloader"
	statusplugin "github.com/nicolasbonnici/gorest-status"
)

func init() {
	pluginloader.RegisterPluginFactory("status", statusplugin.NewPlugin)
}
Configuration

Add to your gorest.yaml:

plugins:
  - name: status
    enabled: true
Advanced Configuration

You can customize the endpoint path using plugin configuration:

plugins:
  - name: status
    enabled: true
    config:
      endpoint: "health"  # Custom endpoint path (default: "status")

Configuration Parameters:

  • endpoint (string): Custom path for the health check endpoint. Default: "status"
    • Example: "health" creates endpoint at /health
    • Example: "api/status" creates endpoint at /api/status

Port Detection:

The plugin automatically detects the server port for logging purposes using the following priority:

  1. port parameter in plugin config (if provided)
  2. PORT environment variable
  3. GOREST_PORT environment variable
  4. Fiber app configuration
  5. Default: 8080

Example with explicit port:

plugins:
  - name: status
    enabled: true
    config:
      endpoint: "health"
      port: "3000"  # Optional: override automatic detection

Features

  • Customizable status check endpoint (default: /status)
  • Database connectivity check
  • Returns HTTP 200 when healthy
  • Returns HTTP 503 when database is down
  • JSON response format
  • Startup logging with endpoint URL

Response Format

Healthy (database configured and up):

{
  "status": "healthy",
  "database": {
    "status": "up"
  }
}

Unhealthy (database down):

{
  "status": "unhealthy",
  "database": {
    "status": "down",
    "error": "connection failed"
  }
}

Database not configured:

{
  "status": "healthy",
  "database": {
    "status": "not_configured"
  }
}

License

MIT License - see LICENSE file for details

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func NewPlugin

func NewPlugin() plugin.Plugin

Types

type StatusPlugin

type StatusPlugin struct {
	// contains filtered or unexported fields
}

StatusPlugin provides a status check endpoint

func (*StatusPlugin) Handler

func (p *StatusPlugin) Handler() fiber.Handler

Handler returns a no-op middleware since status endpoint is set up via SetupEndpoints

func (*StatusPlugin) Initialize

func (p *StatusPlugin) Initialize(config map[string]interface{}) error

func (*StatusPlugin) Name

func (p *StatusPlugin) Name() string

func (*StatusPlugin) SetupEndpoints

func (p *StatusPlugin) SetupEndpoints(app *fiber.App) error

SetupEndpoints implements the optional EndpointSetup interface

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL