This only work for Beego 1.x. If you are using Beego 2.x, please change language to EN-US.
Beego contains sample applications to help you learn and use the Beego app framework.
You will need a functioning 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/astaxie/beego
$ go get -u github.com/beego/bee
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 havn't set $GOPATH
$ echo 'export GOPATH="$HOME/go"' >> ~/.profile # or ~/.zshrc, ~/.cshrc, whatever shell you use
# 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 hello
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/.
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/astaxie/beego"
)
type MainController struct {
beego.Controller
}
func (this *MainController) Get() {
this.Ctx.WriteString("hello world")
}
func main() {
beego.Router("/", &MainController{})
beego.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/astaxie/beego
. 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 fieldbeego.Controller
, so theMainController
has all methods thatbeego.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 inbeego.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.