Difference between revisions of "Go structure"
Jump to navigation
Jump to search
(Created page with "``` project/ │ ├── cmd/ │ └── your_app/ │ └── main.go │ ├── internal/ │ ├── models/ │ │ ├── user.go │ │...") |
|||
Line 23: | Line 23: | ||
│ | │ | ||
└── go.mod | └── go.mod | ||
+ | ``` | ||
+ | |||
+ | |||
+ | ``` | ||
+ | // main.go | ||
+ | package main | ||
+ | |||
+ | import ( | ||
+ | "project/internal/routes" | ||
+ | "github.com/labstack/echo/v4" | ||
+ | ) | ||
+ | |||
+ | func main() { | ||
+ | e := echo.New() | ||
+ | |||
+ | // Initialize routes | ||
+ | routes.InitUserRoutes(e) | ||
+ | routes.InitPostRoutes(e) | ||
+ | routes.InitCommentRoutes(e) | ||
+ | |||
+ | // Start the server | ||
+ | e.Logger.Fatal(e.Start(":8080")) | ||
+ | } | ||
+ | go | ||
+ | Copy code | ||
+ | // internal/routes/user_routes.go | ||
+ | package routes | ||
+ | |||
+ | import ( | ||
+ | "github.com/labstack/echo/v4" | ||
+ | "project/internal/handlers" | ||
+ | ) | ||
+ | |||
+ | // InitUserRoutes initializes user routes | ||
+ | func InitUserRoutes(e *echo.Echo) { | ||
+ | e.GET("/users", handlers.GetUsers) | ||
+ | e.GET("/users/:id", handlers.GetUserByID) | ||
+ | e.POST("/users", handlers.CreateUser) | ||
+ | e.PUT("/users/:id", handlers.UpdateUser) | ||
+ | e.DELETE("/users/:id", handlers.DeleteUser) | ||
+ | } | ||
+ | go | ||
+ | Copy code | ||
+ | // internal/handlers/user_handler.go | ||
+ | package handlers | ||
+ | |||
+ | import ( | ||
+ | "github.com/labstack/echo/v4" | ||
+ | "net/http" | ||
+ | ) | ||
+ | |||
+ | // GetUsers handles GET /users | ||
+ | func GetUsers(c echo.Context) error { | ||
+ | // Get users from database and return response | ||
+ | return c.String(http.StatusOK, "GetUsers handler") | ||
+ | } | ||
+ | |||
+ | // GetUserByID handles GET /users/:id | ||
+ | func GetUserByID(c echo.Context) error { | ||
+ | // Get user by ID from database and return response | ||
+ | return c.String(http.StatusOK, "GetUserByID handler") | ||
+ | } | ||
+ | |||
+ | // CreateUser handles POST /users | ||
+ | func CreateUser(c echo.Context) error { | ||
+ | // Create user in database and return response | ||
+ | return c.String(http.StatusCreated, "CreateUser handler") | ||
+ | } | ||
+ | |||
+ | // UpdateUser handles PUT /users/:id | ||
+ | func UpdateUser(c echo.Context) error { | ||
+ | // Update user in database and return response | ||
+ | return c.String(http.StatusOK, "UpdateUser handler") | ||
+ | } | ||
+ | |||
+ | // DeleteUser handles DELETE /users/:id | ||
+ | func DeleteUser(c echo.Context) error { | ||
+ | // Delete user from database and return response | ||
+ | return c.String(http.StatusOK, "DeleteUser handler") | ||
+ | } | ||
``` | ``` |
Latest revision as of 00:03, 14 April 2024
project/ │ ├── cmd/ │ └── your_app/ │ └── main.go │ ├── internal/ │ ├── models/ │ │ ├── user.go │ │ └── post.go │ │ └── ... │ │ │ ├── handlers/ │ │ ├── user_handler.go │ │ └── post_handler.go │ │ └── ... │ │ │ └── routes/ │ ├── user_routes.go │ └── post_routes.go │ └── ... │ └── go.mod
// main.go package main import ( "project/internal/routes" "github.com/labstack/echo/v4" ) func main() { e := echo.New() // Initialize routes routes.InitUserRoutes(e) routes.InitPostRoutes(e) routes.InitCommentRoutes(e) // Start the server e.Logger.Fatal(e.Start(":8080")) } go Copy code // internal/routes/user_routes.go package routes import ( "github.com/labstack/echo/v4" "project/internal/handlers" ) // InitUserRoutes initializes user routes func InitUserRoutes(e *echo.Echo) { e.GET("/users", handlers.GetUsers) e.GET("/users/:id", handlers.GetUserByID) e.POST("/users", handlers.CreateUser) e.PUT("/users/:id", handlers.UpdateUser) e.DELETE("/users/:id", handlers.DeleteUser) } go Copy code // internal/handlers/user_handler.go package handlers import ( "github.com/labstack/echo/v4" "net/http" ) // GetUsers handles GET /users func GetUsers(c echo.Context) error { // Get users from database and return response return c.String(http.StatusOK, "GetUsers handler") } // GetUserByID handles GET /users/:id func GetUserByID(c echo.Context) error { // Get user by ID from database and return response return c.String(http.StatusOK, "GetUserByID handler") } // CreateUser handles POST /users func CreateUser(c echo.Context) error { // Create user in database and return response return c.String(http.StatusCreated, "CreateUser handler") } // UpdateUser handles PUT /users/:id func UpdateUser(c echo.Context) error { // Update user in database and return response return c.String(http.StatusOK, "UpdateUser handler") } // DeleteUser handles DELETE /users/:id func DeleteUser(c echo.Context) error { // Delete user from database and return response return c.String(http.StatusOK, "DeleteUser handler") }