热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

beerestfulapi简明教程

入门咯官网新建项目beego的项目基本都是通过bee命令来创建的,那我们就先拉取代码吧。bee框架goget-ugithub.comastaxiebeegobee命令行工具goge
入门咯

官网

新建项目

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里,则不用这一步)。

会生成如下文件


推荐阅读
  • 本文介绍了设计师伊振华受邀参与沈阳市智慧城市运行管理中心项目的整体设计,并以数字赋能和创新驱动高质量发展的理念,建设了集成、智慧、高效的一体化城市综合管理平台,促进了城市的数字化转型。该中心被称为当代城市的智能心脏,为沈阳市的智慧城市建设做出了重要贡献。 ... [详细]
  • Imtryingtofigureoutawaytogeneratetorrentfilesfromabucket,usingtheAWSSDKforGo.我正 ... [详细]
  • CSS3选择器的使用方法详解,提高Web开发效率和精准度
    本文详细介绍了CSS3新增的选择器方法,包括属性选择器的使用。通过CSS3选择器,可以提高Web开发的效率和精准度,使得查找元素更加方便和快捷。同时,本文还对属性选择器的各种用法进行了详细解释,并给出了相应的代码示例。通过学习本文,读者可以更好地掌握CSS3选择器的使用方法,提升自己的Web开发能力。 ... [详细]
  • 本文介绍了Redis的基础数据结构string的应用场景,并以面试的形式进行问答讲解,帮助读者更好地理解和应用Redis。同时,描述了一位面试者的心理状态和面试官的行为。 ... [详细]
  • 如何用UE4制作2D游戏文档——计算篇
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了如何用UE4制作2D游戏文档——计算篇相关的知识,希望对你有一定的参考价值。 ... [详细]
  • 自动轮播,反转播放的ViewPagerAdapter的使用方法和效果展示
    本文介绍了如何使用自动轮播、反转播放的ViewPagerAdapter,并展示了其效果。该ViewPagerAdapter支持无限循环、触摸暂停、切换缩放等功能。同时提供了使用GIF.gif的示例和github地址。通过LoopFragmentPagerAdapter类的getActualCount、getActualItem和getActualPagerTitle方法可以实现自定义的循环效果和标题展示。 ... [详细]
  • 本文介绍了如何使用PHP向系统日历中添加事件的方法,通过使用PHP技术可以实现自动添加事件的功能,从而实现全局通知系统和迅速记录工具的自动化。同时还提到了系统exchange自带的日历具有同步感的特点,以及使用web技术实现自动添加事件的优势。 ... [详细]
  • Java序列化对象传给PHP的方法及原理解析
    本文介绍了Java序列化对象传给PHP的方法及原理,包括Java对象传递的方式、序列化的方式、PHP中的序列化用法介绍、Java是否能反序列化PHP的数据、Java序列化的原理以及解决Java序列化中的问题。同时还解释了序列化的概念和作用,以及代码执行序列化所需要的权限。最后指出,序列化会将对象实例的所有字段都进行序列化,使得数据能够被表示为实例的序列化数据,但只有能够解释该格式的代码才能够确定数据的内容。 ... [详细]
  • sklearn数据集库中的常用数据集类型介绍
    本文介绍了sklearn数据集库中常用的数据集类型,包括玩具数据集和样本生成器。其中详细介绍了波士顿房价数据集,包含了波士顿506处房屋的13种不同特征以及房屋价格,适用于回归任务。 ... [详细]
  • 本文介绍了RPC框架Thrift的安装环境变量配置与第一个实例,讲解了RPC的概念以及如何解决跨语言、c++客户端、web服务端、远程调用等需求。Thrift开发方便上手快,性能和稳定性也不错,适合初学者学习和使用。 ... [详细]
  • 标题: ... [详细]
  • 闭包一直是Java社区中争论不断的话题,很多语言都支持闭包这个语言特性,闭包定义了一个依赖于外部环境的自由变量的函数,这个函数能够访问外部环境的变量。本文以JavaScript的一个闭包为例,介绍了闭包的定义和特性。 ... [详细]
  • 本文介绍了Android 7的学习笔记总结,包括最新的移动架构视频、大厂安卓面试真题和项目实战源码讲义。同时还分享了开源的完整内容,并提醒读者在使用FileProvider适配时要注意不同模块的AndroidManfiest.xml中配置的xml文件名必须不同,否则会出现问题。 ... [详细]
  • 深度学习中的Vision Transformer (ViT)详解
    本文详细介绍了深度学习中的Vision Transformer (ViT)方法。首先介绍了相关工作和ViT的基本原理,包括图像块嵌入、可学习的嵌入、位置嵌入和Transformer编码器等。接着讨论了ViT的张量维度变化、归纳偏置与混合架构、微调及更高分辨率等方面。最后给出了实验结果和相关代码的链接。本文的研究表明,对于CV任务,直接应用纯Transformer架构于图像块序列是可行的,无需依赖于卷积网络。 ... [详细]
  • 本文讨论了如何使用Web.Config进行自定义配置节的配置转换。作者提到,他将msbuild设置为详细模式,但转换却忽略了带有替换转换的自定义部分的存在。 ... [详细]
author-avatar
铁狼爷们儿
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有