mysqlapigoframeworksbeego

Create data by API not been saved with beego


Versions:

bee version
______
| ___ \
| |_/ /  ___   ___
| ___ \ / _ \ / _ \
| |_/ /|  __/|  __/
\____/  \___| \___| v1.10.0

├── Beego     : 1.11.1
├── GoVersion : go1.12.1

Create a beego project:

bee new quickstart

Use beego's bee tool to generate a post scaffold:

bee generate scaffold post -fields="title:string,body:text" -driver=mysql -conn="root:root@tcp(127.0.0.1:3306)/quickstart"

routers/router.go

package routers

import (
    "quickstart/controllers"
    "github.com/astaxie/beego"
)

func init() {
    beego.Router("/", &controllers.MainController{})
    beego.Router("/posts" ,&controllers.PostController{}, "*:GetAll")
    beego.Router("/posts/add" ,&controllers.PostController{}, "*:Post")
}

Initials one record in db:

mysql> use quickstart;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
mysql> show tables;
+----------------------+
| Tables_in_quickstart |
+----------------------+
| migrations           |
| post                 |
+----------------------+
2 rows in set (0.00 sec)

mysql> desc post;
+-------+--------------+------+-----+---------+----------------+
| Field | Type         | Null | Key | Default | Extra          |
+-------+--------------+------+-----+---------+----------------+
| id    | int(11)      | NO   | PRI | NULL    | auto_increment |
| title | varchar(128) | NO   |     | NULL    |                |
| body  | longtext     | NO   |     | NULL    |                |
+-------+--------------+------+-----+---------+----------------+
3 rows in set (0.00 sec)

mysql> insert into post(id, title, body) values(1, 'a', 'b');
Query OK, 1 row affected (0.00 sec)

Create a second record by API:

enter image description here

But check the data list, title and body aren't been saved. Why?

enter image description here


Solution

  • Maybe bee new quickstart not generated structure with API. It's for form.