bee

a 夏天 提交于 2019-12-20 09:57:12

【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>>

入门咯

官网

新建项目

beego 的项目基本都是通过 bee 命令来创建的,那我们就先拉取代码吧。

bee框架
go get -u github.com/astaxie/beego 

bee命令行工具
go get -u github.com/beego/bee

创建一个api

首先我们看命令行,一般是 -h 或者help

bee help

果不其然

Bee is a Fast and Flexible tool for managing your Beego Web Application.

USAGE
    bee command [arguments]

AVAILABLE COMMANDS

    version     Prints the current Bee version
    migrate     Runs database migrations
    api         Creates a Beego API application
    bale        Transforms non-Go files to Go source files
    fix         Fixes your application by making it compatible with newer versions of Beego
    dlv         Start a debugging session using Delve
    dockerize   Generates a Dockerfile for your Beego application
    generate    Source code generator
    hprose      Creates an RPC application based on Hprose and Beego frameworks
    new         Creates a Beego application
    pack        Compresses a Beego application into a single file
    rs          Run customized scripts
    run         Run the application by starting a local development server
    server      serving static content over HTTP on port

Use bee help [command] for more information about a command.

可以看到,api命令是用于创建一个bee api application。继续查看命令如何使用:

bee help api
USAGE
  bee api [appname]

OPTIONS
  -conn
      Connection string used by the driver to connect to a database instance.

  -driver
      Database driver. Either mysql, postgres or sqlite.

  -tables
      List of table names separated by a comma.

DESCRIPTION
  The command 'api' creates a Beego API application.

  Example:
      $ bee api [appname] [-tables=""] [-driver=mysql] [-conn="root:@tcp(127.0.0.1:3306)/test"]

  If 'conn' argument is empty, the command will generate an example API application. Otherwise the command
  will connect to your database and generate models based on the existing tables.

  The command 'api' creates a folder named [appname] with the following structure:

            ├── main.go
            ├── conf
            │     └── app.conf
            ├── controllers
            │     └── object.go
            │     └── user.go
            ├── routers
            │     └── router.go
            ├── tests
            │     └── default_test.go
            └── models
                  └── object.go
                  └── user.go

那我们就创建一个包含表结构的项目吧。

创建一个为blog的项目
bee api blog -conn="root:sa@tcp(127.0.0.1:3306)/blog"

生成项目目录如下:

进去看代码,可以看到,基础的增删改查已经全部完成了。

运行项目

开始我们看到Bee help,有个run命令。

bee run blog

运行成功

______
| ___ \
| |_/ /  ___   ___
| ___ \ / _ \ / _ \
| |_/ /|  __/|  __/
\____/  \___| \___| v1.10.0
2019/12/20 09:20:12 INFO     ▶ 0001 Using 'blog' as 'appname'
2019/12/20 09:20:12 INFO     ▶ 0002 Initializing watcher...
2019/12/20 09:20:13 SUCCESS  ▶ 0003 Built Successfully!
2019/12/20 09:20:13 INFO     ▶ 0004 Restarting 'blog'...
2019/12/20 09:20:13 SUCCESS  ▶ 0005 './blog' is running...

这时候应该就可以请求了吧,但是,神奇了,无论你请求那个路由,都会404。 curl http://localhost:8080/v1/content/1

为什么呢?

查看文档得到新的东西

beego 自动会进行源码分析,注意只会在 dev 模式下进行生成,生成的路由放在 “/routers/commentsRouter.go” 文件中。

然后我看,runmod是dev模式的。

后面我发现,项目一定要在gopath中,才会生成。

于是乎,项目运行前,手动导出gopath加上当前工作目录

workdir=$(cd $(dirname $0); pwd)
echo "exec path:"$workdir
gosrc_path=$workdir/../../

export GOPATH=$GOPATH:$gosrc_path
echo $GOPATH
cd $workdir && go run main.go

神奇动物出现了

{
        "id": 1,
        "cate_id": 0,
        "title": "1231",
        "description": "2222",
        "content": "",
        "keyword": "",
        "create_time": "2019-12-19 10:36:14",
        "update_time": "2019-12-19 10:36:14",
        "status": 1,
        "is_original": 1,
        "ext": ""
}

真乃神坑(如果项目是在gopath里,则不用这一步)。

会生成如下文件

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!