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 install github.com/beego/beego/v2@latestgo install github.com/beego/bee/v2@latest
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 useexec $SHELL
Want to quickly see how it works? Then just set things up like this:
cd $GOPATH/srcbee new hellocd hellobee run
Windows users:
cd %GOPATH%/srcbee new hellocd hellobee 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 mainimport ("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 theBeeAppapplication at this time. - Define the controller. We define a struct called
MainControllerwith an anonymous fieldweb.Controller, so theMainControllerhas all methods thatweb.Controllerhas. - Define some RESTful methods. Due to the anonymous field above,
MainControlleralready hasGet,Post,Delete,Putand other methods, these methods will be called when user sends a corresponding request (e.g. thePostmethod is called to handle requests using POST. Therefore, after we overloaded theGetmethod inMainController, all GET requests will use that method inMainControllerinstead of inweb.Controller. - Define the main function. All applications in Go use
mainas their entry point like C does. - Register routers. This tells Beego which controller is responsible for specific requests. Here we register
MainControllerfor/, 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+cto 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\beecopy bee.exe %GOPATH%\bin\bee.exedel bee.exepause
step2.new-beego-app.bat:
@echo Set value of APP same as your app folderset APP=coscms.comset GOPATH=%~dp0..set BEE=%GOPATH%\bin\bee%BEE% new %APP%cd %APP%echo %BEE% run %APP%.exe > run.batecho pause >> run.batstart run.batpausestart 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.
