Para desplegar satisfactoriamente una API dentro de la infraestructura de la OAS, se debe crear un servicio el cual será constantemente consultado para verificar el estado de salud del mismo, esto se conoce como health check.
A continuación se definirá los pasos necesarios para implementar el health check de las APIs de la oas.
Existe una librería en el repositorio util_oas
del cual haremos uso en el import
del archivo main.go
de la api.
apistatus "github.com/udistrital/utils_oas/apiStatusLib"
Para inicializar la función agregamos la siguiente línea antes del beego.Run()
apistatus.Init()
El archivo main.go lucirá de la siguiente manera.
package main
import (
"github.com/astaxie/beego"
"github.com/astaxie/beego/orm"
"github.com/astaxie/beego/plugins/cors"
_ "github.com/lib/pq"
_ "github.com/udistrital/parametros_crud/routers"
"github.com/udistrital/utils_oas/customerrorv2"
apistatus "github.com/udistrital/utils_oas/apiStatusLib"
)
func main() {
orm.RegisterDataBase("default", "postgres", "postgres://"+
beego.AppConfig.String("PGuser")+":"+
beego.AppConfig.String("PGpass")+"@"+
beego.AppConfig.String("PGhost")+":"+
beego.AppConfig.String("PGport")+"/"+
beego.AppConfig.String("PGdb")+"?sslmode=disable&search_path="+
beego.AppConfig.String("PGschema")+"")
if beego.BConfig.RunMode == "dev" {
beego.BConfig.WebConfig.DirectoryIndex = true
beego.BConfig.WebConfig.StaticDir["/swagger"] = "swagger"
}
beego.InsertFilter("*", beego.BeforeRouter, cors.Allow(&cors.Options{
AllowOrigins: []string{"*"},
AllowMethods: []string{"PUT", "PATCH", "GET", "POST", "OPTIONS", "DELETE"},
AllowHeaders: []string{"Origin", "x-requested-with",
"content-type",
"accept",
"origin",
"authorization",
"x-csrftoken"},
ExposeHeaders: []string{"Content-Length"},
AllowCredentials: true,
}))
beego.ErrorController(&customerrorv2.CustomErrorController{})
apistatus.Init()
beego.Run()
}
Con esto garantizamos que las APIs se desplieguen correctamente en la infraestructura de la OAS.