Getting started
Installation
Beego contains sample applications to help you learn and use the Beego app framework.
You will need a Go 1.1+ installation for this to work.
You will need to install or upgrade Beego and the Bee dev tool:
go get -u github.com/beego/beego/v2
go get -u github.com/beego/bee/v2
For convenience, you should add $GOPATH/bin
to your $PATH
environment variable. Please make sure you have already set the $GOPATH
environment variable.
If you haven’t set $GOPATH
add it to the shell you’re using (~/.profile, ~/.zshrc, ~/.cshrc or any other).
For example ~/.zsh
echo 'export GOPATH="$HOME/go"' >> ~/.zsh
If you have already set $GOPATH
echo 'export PATH="$GOPATH/bin:$PATH"' >> ~/.profile # or ~/.zshrc, ~/.cshrc, whatever shell you use
exec $SHELL
Want to quickly see how it works? Then just set things up like this:
cd $GOPATH/src
bee new hello
cd hello
bee run
Windows users:
cd %GOPATH%/src
bee new hello
cd hello
bee run
These commands help you:
- Install Beego into your
$GOPATH
. - Install the Bee tool in your computer.
- Create a new application called
hello
. - Start hot compile.
Once it’s running, open a browser to http://localhost:8080/.
Simple example
The following example prints Hello world
to your browser, it shows how easy it is to build a web application with beego.
package main
import (
"github.com/beego/beego/v2/server/web"
)
type MainController struct {
web.Controller
}
func (this *MainController) Get() {
this.Ctx.WriteString("hello world")
}
func main() {
web.Router("/", &MainController{})
web.Run()
}
Save file as hello.go
, build and run it:
$ go build -o hello hello.go
$ ./hello
Open http://127.0.0.1:8080 in your browser and you will see hello world
.
What is happening in the scenes of the above example?
- We import package
github.com/beego/beego/v2/server/web
. As we know, Go initializes packages and runs init() in every package (more details), so Beego initializes theBeeApp
application at this time. - Define the controller. We define a struct called
MainController
with an anonymous fieldweb.Controller
, so theMainController
has all methods thatweb.Controller
has. - Define some RESTful methods. Due to the anonymous field above,
MainController
already hasGet
,Post
,Delete
,Put
and other methods, these methods will be called when user sends a corresponding request (e.g. thePost
method is called to handle requests using POST. Therefore, after we overloaded theGet
method inMainController
, all GET requests will use that method inMainController
instead of inweb.Controller
. - Define the main function. All applications in Go use
main
as their entry point like C does. - Register routers. This tells Beego which controller is responsible for specific requests. Here we register
MainController
for/
, so all requests to/
will be handed byMainController
. Be aware that the first argument is the path and the second one is pointer to the controller you want to register. - Run the application on port 8080 as default, press
Ctrl+c
to exit.
Following are shortcut .bat
files for Windows users:
Create files step1.install-bee.bat
and step2.new-beego-app.bat
under %GOPATH%/src
.
step1.install-bee.bat
:
set GOPATH=%~dp0..
go build github.com\beego\bee
copy bee.exe %GOPATH%\bin\bee.exe
del bee.exe
pause
step2.new-beego-app.bat
:
@echo Set value of APP same as your app folder
set APP=coscms.com
set GOPATH=%~dp0..
set BEE=%GOPATH%\bin\bee
%BEE% new %APP%
cd %APP%
echo %BEE% run %APP%.exe > run.bat
echo pause >> run.bat
start run.bat
pause
start http://127.0.0.1:8080
Click those two file in order will quick start your Beego tour. And just run run.bat
in the future.