1
0
mirror of https://github.com/astaxie/beego.git synced 2024-11-05 05:00:54 +00:00
Beego/docs/en/API.md

2.4 KiB

Getting start with API application development

Go is very good for developing API applications which I think is the biggest strength compare to other dynamic languages. Beego provides powerful and quick setup tool for developing API applications, which gives you more focus on business logic.

Quick setup

bee can setup a API application very quick by executing commands under any $GOPATH/src.

bee api beeapi

Application directory structure

├── conf
│   └── app.conf
├── controllers
│   └── default.go
├── models
│    └── object.go
└── main.go	

Source code explanation

  • app.conf has following configuration options for your API applications:

    • autorender = false // Disable auto-render since API applications don't need.
    • copyrequestbody = true // RESTFul applications sends raw body instead of form, so we need to read body specifically.
  • main.go is for registering routers of RESTFul.

      beego.RESTRouter("/object", &controllers.ObejctController{})
    

Match rules as follows:

URL HTTP Verb Functionality
/object POST Creating Objects
/object/objectId GET Retrieving Objects
/object/objectId PUT Updating Objects
/object GET Queries
/object/objectId DELETE Deleting Objects
  • ObejctController implemented corresponding methods:

    type ObejctController struct { beego.Controller }

    func (this *ObejctController) Post(){

    }

    func (this *ObejctController) Get(){

    }

    func (this *ObejctController) Put(){

    }

    func (this *ObejctController) Delete(){

    }

  • models implemented corresponding object operation for adding, deleting, updating and getting.

Test

  • Add a new object:

      curl -X POST -d '{"Score":1337,"PlayerName":"Sean Plott"}' http://127.0.0.1:8080/object
    

    Returns a corresponding objectID:astaxie1373349756660423900

  • Query a object:

    curl -X GET http://127.0.0.1:8080/object/astaxie1373349756660423900

  • Query all objects:

    curl -X GET http://127.0.0.1:8080/object

  • Update a object:

    curl -X PUT -d '{"Score":10000}'http://127.0.0.1:8080/object/astaxie1373349756660423900

  • Delete a object:

    curl -X DELETE http://127.0.0.1:8080/object/astaxie1373349756660423900