go-webapp-sample
Preface
This sample project uses Echo and Gorm written by Golang. It provides only Web API. So, I recommend using a vuejs-webapp-sample project as Web UI.
Install
Perform the following steps:
- Download and install MinGW(gcc).
- Download and install Visual Studio Code(VS Code).
- Download and install Golang.
- Get the source code of this repository by the following command.
go get -u github.com/ybkuroki/go-webapp-sample
Starting Server
Perform the following steps:
- Starting this web application by the following command.
go run main.go
- When startup is complete, the console shows the following message:
http server started on [::]:8080
- Access http://localhost:8080/api/health in your browser and confirm that this application has started.
healthy
- Login with the following username and password.
- username :
test
- password :
test
Build executable file
Build this source code by the following command.
go build main.go
Project Map
The follwing figure is the map of this sample project.
- go-webapp-sample
+ config … Define configurations of this system.
+ logger … Provide loggers.
+ middleware … Define custom middleware.
+ migration … Provide database migration service for development.
+ router … Define routing.
+ controller … Define controllers.
+ model … Define models.
+ repository … Provide a service of database access.
+ service … Provide a service of book management.
+ session … Provide session management.
+ test … for unit test
- main.go … Entry Point.
Services
This sample provides 3 services: book management, account management, and master management.
Book Management
There are the following services in the book management.
Service Name |
HTTP Method |
URL |
Parameter |
Summary |
List Service |
GET |
/api/book/list |
Page |
Get a list of books. |
Regist Service |
POST |
/api/book/new |
Book |
Regist a book data. |
Edit Service |
POST |
/api/book/edit |
Book |
Edit a book data. |
Delete Service |
POST |
/api/book/delete |
Book |
Delete a book data. |
Search Title Service |
GET |
/api/book/search |
Keyword, Page |
Search a title with the specified keyword. |
Account Management
There are the following services in the Account management.
Service Name |
HTTP Method |
URL |
Parameter |
Summary |
Login Service |
POST |
/api/account/login |
Session ID, User Name, Password |
Session authentication with username and password. |
Logout Service |
POST |
/api/account/logout |
Session ID |
Logout a user. |
Login Status Check Service |
GET |
/api/account/loginStatus |
Session ID |
Check if the user is logged in. |
Login Username Service |
GET |
/api/account/loginAccount |
Session ID |
Get the login user's username. |
Master Management
There are the following services in the Master management.
Service Name |
HTTP Method |
URL |
Parameter |
Summary |
Category List Service |
GET |
/api/master/category |
Nothing |
Get a list of categories. |
Format List Service |
GET |
/api/master/format |
Nothing |
Get a list of formats. |
Libraries
This sample uses the following libraries.
Library Name |
Version |
Echo |
4.1.16 |
Gorm |
1.9.12 |
go-playground/validator.v9 |
9.31.0 |
Zap/logger |
1.16.0 |
License
The License of this sample is MIT License.