当前位置: 首页 > news >正文

官方网站下载派的app淘宝网站建设与规划

官方网站下载派的app,淘宝网站建设与规划,wordpress组件,网站设计与制作前景文章目录 一、安装依赖二、创建项目三、初始化项目四、使用git_bash命令终端运行命令五、创建自己的项目1、修改app.proto3、internal/service/app.go4、修改internal/service/service.go文件5、创建internal/biz/content.go文件6、修改internal/biz/biz.go文件7、创建internal…

文章目录

  • 一、安装依赖
  • 二、创建项目
  • 三、初始化项目
  • 四、使用git_bash命令终端运行命令
  • 五、创建自己的项目
    • 1、修改app.proto
    • 3、internal/service/app.go
    • 4、修改internal/service/service.go文件
    • 5、创建internal/biz/content.go文件
    • 6、修改internal/biz/biz.go文件
    • 7、创建internal/data/content.go文件
    • 8.修改internal/data/data.go文件
  • 9、修改ContentManage/configs/config.yaml文件
    • 12、创建ContentManage/cmd/client/client.go,来rpc调用方法

一、安装依赖

  • 1、设置代理
    在这里插入图片描述
  • 2、安装依赖
# 安装Kratos tool
go install github.com/go-kratos/kratos/cmd/kratos/v2@latest

二、创建项目

# 然后在GOPATH\bin目录下能找到kratos.exe,在需要创建项目的目录下执行,即可创建项目
kratos new helloworld
# 如果默认的github不通的话,可以用gitee拉取
kratos new helloworld -r https://gitee.com/go-kratos/kratos-layout.git

三、初始化项目

# 进入helloworld目录
cd helloworld
# 初始化项目
make init
  • 如果没有make命令,可以在网盘中下载
  • 如果没有protoc命令,也可以在网盘中下载,并配置其环境变量

四、使用git_bash命令终端运行命令

# 初始化
make init
# 生成api
make api
# 构建
make build
# 所有操作
make all
# 启动kracos
kracos run
# 测试
curl 'http://127.0.0.1:8000/kracos'

五、创建自己的项目

# 创建内容管理项目
kratos new ContentManage -r https://gitee.com/go-kratos/kratos-layout.git# 进入目录
cd ./ContentManage# 拉取依赖
go mod download# 1.添加我们的自定义协议,并修改为我们自定义的接口,如下
kratos proto add api/operate/app.proto# 2.修改完成之后,重新生成go文件
make api# 3.在internal/service下创建app.go文件。代码如下
# 4.修改internal/service/service.go文件
# 5.创建internal/biz/content.go文件
# 6.修改internal/biz/biz.go文件
# 7.创建internal/data/content.go文件
# 8.修改internal/data/data.go文件
# 9.修改ContentManage/configs/config.yaml文件
# 10.执行命令,重新生成代码
make all
# 11.启动
kratos run
# 12.创建ContentManage/cmd/client/client.go,来rpc调用方法

1、修改app.proto

syntax = "proto3";import "google/api/annotations.proto";package api.operate;option go_package = "ContentManage/api/operate;operate";
option java_multiple_files = true;
option java_package = "api.operate";service App {// 创建内容rpc CreateContent (CreateContentReq) returns (CreateContentResp) {option (google.api.http) = {post: "/api/cms/content/create",body: "content"};};
}message Content {// 内容idint64 id = 1;// 内容标题string title = 2;// 视频播放urlstring videoUrl = 3;// 作者string author = 4;// 内容描述string description =5;// 封面图urlstring thumbnail = 6;// 内容分类string category = 7;// 内容时长int64 duration = 8;// 分辨率string resolution = 9;// 文件大小int64 fileSize = 10;// 文件格式string format = 11;// 视频质量1-高清 2-标清int32 quality = 12;// 审核状态 1-审核中 2-审核通过 3-审核不通过int32 approvalStatus = 13;
}message CreateContentReq {// 内容Content content = 1;
}
message CreateContentResp {}

3、internal/service/app.go

package serviceimport ("ContentManage/api/operate""ContentManage/internal/biz"
)type AppService struct {operate.UnimplementedAppServeruc *biz.ContentUsecase
}// NewAppService new a app service.
func NewAppService(uc *biz.ContentUsecase) *AppService {return &AppService{uc: uc}
}

4、修改internal/service/service.go文件

package serviceimport "github.com/google/wire"// ProviderSet is service providers.
var ProviderSet = wire.NewSet(NewAppService)

5、创建internal/biz/content.go文件

package bizimport ("context""github.com/go-kratos/kratos/v2/log""time"
)type Content struct {Id             int           `gorm:"column:id;primary_key"`  // 内容idTitle          string        `gorm:"column:title"`           // 内容标题Description    string        `gorm:"column:description"`     // 内容描述Author         string        `gorm:"column:author"`          // 作者VideoUrl       string        `gorm:"column:video_url"`       // 视频播放URLThumbnail      string        `gorm:"column:thumbnail"`       // 封面页URLCategory       string        `gorm:"column:category"`        // 内容分类Duration       time.Duration `gorm:"column:duration"`        // 内容时长Resolution     string        `gorm:"column:resolution"`      // 分辨率FileSize       int64         `gorm:"column:file_size"`       // 文件大小Format         string        `gorm:"column:format"`          // 文件格式 如MP4等Quality        int32         `gorm:"column:quality"`         // 视频质量 1-高清 2-标清ApprovalStatus int32         `gorm:"column:approval_status"` // 审核状态 1-审核中 2-审核通过 3-审核不通过CreatedAt      time.Time     `gorm:"column:created_at"`      // 内容创建时间UpdatedAt      time.Time     `gorm:"column:updated_at"`      // 内容更新时间
}func (c Content) TableName() string {return "cms_content.t_content_detail"
}type ContentRepo interface {Create(context.Context, *Content) error
}type ContentUsecase struct {repo ContentRepolog  *log.Helper
}// NewContentUsecase new a Content usecase.
func NewContentUsecase(repo ContentRepo, logger log.Logger) *ContentUsecase {return &ContentUsecase{repo: repo, log: log.NewHelper(logger)}
}func (uc *ContentUsecase) CreateContext(ctx context.Context, content *Content) error {uc.log.WithContext(ctx).Infof("CreateContext: %v+v", content)return uc.repo.Create(ctx, content)
}

6、修改internal/biz/biz.go文件

package bizimport "github.com/google/wire"// ProviderSet is biz providers.
var ProviderSet = wire.NewSet(NewContentUsecase)

7、创建internal/data/content.go文件

package dataimport ("ContentManage/internal/biz""context""github.com/go-kratos/kratos/v2/log"
)type contentRepo struct {data *Datalog  *log.Helper
}func NewContentRepo(data *Data, logger log.Logger) biz.ContentRepo {return &contentRepo{data: data,log:  log.NewHelper(logger),}
}func (r *contentRepo) Create(ctx context.Context, content *biz.Content) error {r.log.Infof("contentRepo Create content = %+v", content)return r.data.db.Save(content).Error
}

8.修改internal/data/data.go文件

package dataimport ("ContentManage/internal/conf""gorm.io/driver/mysql""gorm.io/gorm""github.com/go-kratos/kratos/v2/log""github.com/google/wire"
)// ProviderSet is data providers.
var ProviderSet = wire.NewSet(NewData, NewContentRepo)// Data .
type Data struct {db *gorm.DB
}// NewData .
func NewData(c *conf.Data, logger log.Logger) (*Data, func(), error) {cleanup := func() {log.NewHelper(logger).Info("closing the data resources")}mysqlDB, err := gorm.Open(mysql.Open(c.GetDatabase().Source))if err != nil {log.Error("[data] failed to connect database", "error", err)panic(err)}db, err := mysqlDB.DB()if err != nil {log.Error("[data] failed to connect database", "error", err)panic(err)}db.SetMaxOpenConns(4)db.SetMaxIdleConns(2)return &Data{db: mysqlDB,}, cleanup, nil
}

9、修改ContentManage/configs/config.yaml文件

server:http:addr: 0.0.0.0:8000timeout: 1sgrpc:addr: 0.0.0.0:9000timeout: 1s
data:database:driver: mysqlsource: root:p@ssw0rd@tcp(127.0.0.1:3306)/?charset=utf8mb4&parseTime=True&loc=Localredis:addr: 127.0.0.1:6379read_timeout: 0.2swrite_timeout: 0.2s

12、创建ContentManage/cmd/client/client.go,来rpc调用方法

package mainimport ("ContentManage/api/operate""context""github.com/go-kratos/kratos/v2/log""github.com/go-kratos/kratos/v2/middleware/recovery""github.com/go-kratos/kratos/v2/transport/grpc"
)func main() {conn, err := grpc.DialInsecure(context.Background(),grpc.WithEndpoint("127.0.0.1:9000"),grpc.WithMiddleware(recovery.Recovery()),)if err != nil {panic(err)}defer conn.Close()client := operate.NewAppClient(conn)reply, err := client.CreateContent(context.Background(), &operate.CreateContentReq{Content: &operate.Content{Title:       "test content_manage create",VideoUrl:    "https://example.com/video.mp4",Author:      "lucky",Description: "test",},})if err != nil {log.Fatal(err)}log.Infof("[grpc] CreateContent %v\n", reply)
}
http://www.dtcms.com/a/588679.html

相关文章:

  • 网站商城系统建设做网站用到的技术
  • 使用c 语言建设网站优点做ppt的兼职网站
  • 北京微信网站建设报价单创意网站 案例 下载
  • 做网站用小动画计算机网站开发要考什么证
  • 南昌电商网站设计宏润建设网站
  • vue做普通网站页面跳转手机能建设网站吗
  • 企业网站托管和网站建设服务商软件编程培训学校排名
  • 爱站网seo综合查询工具青海做高端网站建设的公司
  • 网站建设情况报告范文中国十大餐饮品牌策划公司
  • seo排名优化培训网站带分期功能的网站建设
  • 杭州做网站哪家公司好深圳网站策划
  • 网站建设仟首先金手指15网线制作ppt
  • 网站备案审核流程图网站建设学徒
  • 关于做ppt的网站合肥seo外包平台
  • 汉中北京网站建设二七郑州网站建设
  • led灯具网站模板关键词搜索量查询工具
  • 怎么用dw做网站wordpress做超链接
  • 门户网站建设基本情况公司logo设计在线生成免费设计入口
  • 网站悬浮广告素材郑州 网站开发
  • 购物网站建设怎么样企业网站推广模式
  • 外贸网站有哪些?免费行情软件的特点和优势
  • 网站提升权重合肥网络推广培训学校
  • 茶叶网站实际案例购买域名后如何使用
  • 网站设计的几大标准产品推广会议流程
  • 中英文企业网站模板公司想做个自己的网站怎么做
  • 保健品网站设计软件工程4大证书
  • 英国网站建设邯郸专业网络营销
  • 广东购物网站建设价格泉州网页搜索排名提升
  • 蜂鸟 网站建设沈阳网红
  • 没有网站可以icp备案网站悬浮图片代码