`

beego框架编写接口

阅读更多

每天花1,2个小时学习了一下go语言基础和beego框架,在公司的go语言项目写几个简单的接口(返回Json格式数据),写的比较简陋,只展示了controller层/service层/model层,还希望大家多多指教:

先看看效果(预先需要安装各种组件或拓展):bee run

postman里调试接口: http://localhost:8090/api/v1/product/products?category_id=7

 

 

 

ProductController.go  代码

package api

import (

   "fmt"

   "encoding/json"

   "gitlab.com/xxxxx/xxxxx/src/v1/drivers/nblogs"

   "gitlab.com/xxxxx/xxxxx/src/v1/errno"

   "gitlab.com/xxxxx/xxxxx/src/v1/http/requests"

   "gitlab.com/xxxxx/xxxxx/src/v1/http/resources"

   "gitlab.com/xxxxx/xxxxx/src/v1/models"

   "gitlab.com/xxxxx/xxxxx/src/v1/services"

)

type ProductController struct {

   BaseController

}

// 获取服务项目列表

func (this *ProductController) GetProductList() {

categoryId, err := this.GetInt64("category_id")  //7

if(err != nil){

nblogs.Error(err)

this.Error(errno.ErrNotFound)

}

result, err := services.GetProductList(services.Params{"category_id":categoryId}, this.AuthUser)

if(err != nil){

nblogs.Error(err)

this.Error(errno.ErrNotFound)

}

fmt.Println(result)

data := resources.NewProductCollection(result, this.AuthUser).ToArray()

this.Success(struct {

Data interface{} `json:"data"`

}{Data:data})

}

productService.go   层代码:

package services

import (

"github.com/xxxxx/beego/orm"

"gitlab.com/xxxxx/xxxxx/src/v1/drivers/nblogs"

"gitlab.com/xxxxx/xxxxx/src/v1/errno"

"gitlab.com/xxxxx/xxxxx/src/v1/helpers"

"gitlab.com/xxxxx/xxxxx/src/v1/models"

"gitlab.com/xxxxx/xxxxx/src/v1/utils/util_time"

"time"

)

 

type CreateProductAttributes struct {

CategoryId       int64   `json:"category_id"`

Name             string  `json:"name"`

SubName          string  `json:"sub_name"`

InnerServiceTime int     `json:"inner_service_time"`

Price            float64 `json:"price"`

EarnestAmount    float64 `json:"earnest_amount"`

}

// 获取服务项目列表

func GetProductList(params Params, user *models.User, columns ...string) (data []models.Product, err error) {

db := GetOrm()

qs := db.QueryTable(new(models.Product)).Exclude("is_deleted", 1)

 

if _, has := params["category_id"]; has {

categoryId := params["category_id"].(int64)

qs = qs.Filter("category_id", categoryId)

}

 

_, err = qs.OrderBy("sort").All(&data, columns...)

if err != nil {

nblogs.Error(err)

return

}

 

return

}

model/product.go    model层代码:

package models

import "time"

// 服务项目模型

type Product struct {

Id                  int64     `json:"product_id"`

Code                string    `json:"code"`

CategoryId          int64     `json:"category_id"`

Name                string    `json:"name"`

SubName             string    `json:"sub_name"`

LogoUrl             string    `json:"logo_url"`

....

}

每行的代码注释解释就不多注解了,大家可自行google

其他接口:如"修改服务项目","获取项目详情"等接口,时间关系会在后面的博客中体现,谢谢大家

 

 

分享到:
评论

相关推荐

    Golang实现的基于beego框架的接口在线文档管理系统源码.zip

    - 文档编辑器:提供一个友好的界面,支持Markdown或自定义格式,用于编写接口描述、请求参数、响应数据等。 - API预览与测试:允许用户在文档中直接测试接口,验证其功能正确性。 - 版本控制:保存不同版本的文档...

    beego官方开发文档

    本文档将全面解析beego框架的核心特性、设计理念以及如何利用它进行实际项目开发。 1. **简介** beego借鉴了Python的Django框架的MVT(Model-View-Template)模式,同时也引入了RESTful设计原则,使得API设计更加...

    Go Web开发实战,基于Go语言,Beego框架开发的B2C模式的电商系统。.zip

    - 编码实现:利用Go语言和Beego框架编写代码,实现各个模块的功能。 - 测试验证:进行单元测试、集成测试,确保各部分功能正常运行。 - 部署上线:配置服务器环境,将项目部署到生产环境,并进行性能监控和优化。...

    Go-仿google任务日历开发采用beego框架前端使用vue

    在本项目中,我们主要探讨的是如何使用Go语言的beego框架进行后端开发,并结合Vue.js进行前端构建,以创建一个类似于Google任务日历的应用。这个应用旨在提供任务管理功能,让用户能够方便地创建、编辑和跟踪他们的...

    GO语言基于Beego框架实现的智能门锁服务器源代码

    在本项目中,我们关注的是一个使用Go语言和Beego框架构建的智能门锁服务器的源代码实现。Go语言,也称为Golang,是Google推出的一种静态类型、编译型的编程语言,以其高效的性能、简洁的语法和内置的并发支持而受到...

    go-cms:基于beego框架的cms系统

    "Go-CMS:基于Beego框架的CMS系统"是一个开源项目,它利用了Go语言的强大性能和Beego框架的灵活性,为开发者提供了一种高效、易用的内容管理系统(CMS)解决方案。Go-CMS旨在简化网站内容的管理、发布和维护,尤其适合...

    beego官方中文教程

    1. **beego框架概述** beego是一个轻量级且强大的Web框架,它简化了Go语言在Web开发中的复杂性,通过提供一套完整的MVC(模型-视图-控制器)架构,使得开发者可以快速地搭建和维护Web应用。beego的设计灵感来源于...

    beego-1.9.2.zip

    **beego 框架详解** `beego` 是一个基于 Go 语言的高效开源 Web 开发框架,它为开发者提供了 MVC(Model-View-Controller)架构,使得 Go 语言在 Web 开发中的应用变得更加简单和高效。在 `beego-1.9.2.zip` 压缩包...

    Go-shrot-url基于go语言和新浪接口的短链接生成使用beego作为mvc框架

    通过这个项目,我们可以深入学习Go语言的Web开发,理解如何使用Beego框架,以及如何与第三方API进行有效交互。此外,还能提升对数据库操作、错误处理、性能优化和安全性设计等方面的能力。总之,"Go-shrot-url"是一...

    beego admin ,权限rbac-admin.zip

    beego admin 是一个基于 Go 语言的 web 开发框架 beego 设计的后台管理系统,而 rbac-admin 指的是角色基础的访问控制(Role-Based Access Control),这是一种常用的权限管理模型。 【beego admin】 beego 是一个...

    基于MinDoc,使用Beego开发的在线文档管理系统源码.zip

    1. **Beego框架**:了解其核心结构,如路由设置、中间件、控制器、模型和视图的编写方式。 2. **数据库交互**:通过查看ORM代码,学习如何使用Beego的orm库进行数据操作,包括增删改查和事务处理。 3. **用户认证与...

    beego2.0的商城demo

    这个项目旨在帮助开发者了解如何在Go语言环境下,利用beego框架搭建一个具有实际商业价值的电商网站。通过学习这个demo,开发者可以掌握beego的路由、模板渲染、数据库交互以及API设计等核心功能。 【标签】"go语言...

    TaskManagementSystem_Api:任务管理系统总体代码-基于Beego框架

    【任务管理系统总体代码-基于Beego框架】 在IT领域,任务管理系统是一种用于组织、跟踪和管理项目任务的应用程序。这个特定的"TaskManagementSystem_Api"是基于Beego框架实现的,Beego是一个高效的Go语言Web开发...

    beego是一个面向Go编程语言的开源高性能web框架.zip

    **beego框架详解** beego是一个专为Go语言设计的高性能Web开发框架,它为Go程序员提供了一套全面且便捷的工具集,旨在简化Web应用的构建过程。beego的设计灵感来自于Python的Django框架,它结合了MVC(Model-View-...

    beego开发文档

    #### 一、beego框架简介 - **定义与功能**:beego是一款基于Go语言的高效HTTP框架,主要用于快速开发API接口、Web应用及后端服务。它遵循RESTful设计理念,能够帮助开发者快速构建稳定且高性能的应用程序。 - **设计...

    毕业设计基于beego的文章管理系统源代码

    本项目是一款基于Beego框架实现的文章管理系统,旨在帮助用户方便地创建、编辑、管理和分享文章。下面,我们将详细探讨Beego框架以及在这个系统中可能涉及的关键技术点。 **Beego框架** 1. **简介**: Beego是一个...

    参考百度文库,使用Beego(Golang)开发的开源文库系统

    1. Beego框架的使用:包括路由配置、模型定义、控制器编写、模板渲染等。 2. Golang基础:变量、类型、函数、包、结构体、接口等。 3. 数据库操作:可能使用GORM或sqlx等库进行数据库交互,如文档的增删改查。 4. ...

Global site tag (gtag.js) - Google Analytics