/* * Micro Service * Package: gitlab.hexacode.org/go-libs/microservice * Maintainer: Azzis Arswendo * * Copyright (C) 2023 Hexacode Teknologi Indonesia * All Rights Reserved */ // Command: microservice // // Description: Micro Service // // Usage: microservice // // Example: ./config.json // // ```json // // { // "namespace": "api-registration", // "server": { // "port": 8080 // }, // "templates": [ // { // "name": "registration", // "path": "/", // "file_path": "example/template.html" // } // ], // "apis": [ // { // "name": "registration", // "path": "/registration", // "method": "POST", // "content_type": "application/json", // "response_type": "application/json", // "callback": { // "plugin": "plugin.so", // "function": "Registration" // }, // "params": [ // { // "name": "username", // "label": "Username", // "placeholder": "Enter Username", // "type": "username", // "validate": "username", // "required": true, // "min": 5, // "max": 32 // }, // { // "name": "fullname", // "label": "Full Name", // "placeholder": "Enter Full Name", // "type": "name", // "validate": "name", // "required": true, // "min": 5, // "max": 32 // }, // { // "name": "email", // "label": "Email Address", // "placeholder": "Enter Email Address", // "type": "email", // "required": true, // "min": 5, // "max": 32 // }, // { // "name": "password", // "label": "Password", // "placeholder": "Enter Password", // "type": "password", // "required": true, // "min": 8, // "max": 120 // }, // { // "name": "confirm_password", // "label": "Confirm Password", // "placeholder": "Enter Confirm Password", // "type": "password", // "required": true, // "min": 8, // "max": 120 // } // ] // }, // { // "name": "verification", // "path": "/verification/:id/:otp", // "method": "GET", // "content_type": "application/json", // "response_type": "application/json", // "callback": { // "plugin": "plugin.so", // "function": "Verification" // }, // "url_params": [ // { // "name": "id", // "type": "textnumber", // "required": true // }, // { // "name": "otp", // "type": "textnumber", // "required": true // } // ] // } // ] // } // // ``` // // Example: main.go // // ```go // // package main // // import ( // "fmt" // // "gitlab.hexacode.org/go-libs/hctypes" // "gitlab.hexacode.org/go-libs/microservice/config" // ) // // func Registration(ctx *config.ConfigContext) (int, hctypes.Dict, *config.ReturnHTTP) { // fmt.Println(ctx.Config.ToDict().ToColoredJson()) // fmt.Println(ctx.ConfigApi.ToDict().ToColoredJson()) // fmt.Println(ctx.URLParams.ToColoredJson()) // fmt.Println(ctx.Params.ToColoredJson()) // fmt.Println(ctx.Headers.ToColoredJson()) // // return 200, hctypes.Dict{ // "id": 1, // "otp": 123456, // }, nil // } // // func Verification(ctx *config.ConfigContext) (int, hctypes.Dict, *config.ReturnHTTP) { // fmt.Println(ctx.Config.ToDict().ToColoredJson()) // fmt.Println(ctx.ConfigApi.ToDict().ToColoredJson()) // fmt.Println(ctx.URLParams.ToColoredJson()) // fmt.Println(ctx.Params.ToColoredJson()) // fmt.Println(ctx.Headers.ToColoredJson()) // // return 200, hctypes.Dict{ // "success": true, // "message": "OTP verified", // }, nil // } // // ``` package main import "gitlab.hexacode.org/go-libs/microservice/config" func main() { conf, err := config.LoadConfig() if err != nil { panic(err) } conf.Run() }