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

网站建设方面书籍包头教育平台网站建设

网站建设方面书籍,包头教育平台网站建设,网站建设 静态类,ui培训设计接口定义 定义 API 接口文件 接口文件 add.api 的内容如下: syntax "v1"info (title: "API 接口文件示例"desc: "演示如何编写 API 接口文件"author: "一见"date: "2023年12月07日"version: "…

接口定义

  • 定义 API 接口文件

接口文件 add.api 的内容如下:

syntax = "v1"info (title:   "API 接口文件示例"desc:    "演示如何编写 API 接口文件"author:  "一见"date:    "2023年12月07日"version: "v1"
)type AddReq {A int `path:"a"`B int `path:"b"`
}type AddReply {Sum int `json:"sum"`        
}service Adder {@handler addget /add/:a/:b(AddReq) returns(AddReply)
}上述go-zero的api文件定义语法正确吗?
  • 编译 API 接口文件

在 add.api 文件所在目录下,使用 go-zero 的脚手架工具 goctl 编译 add.api 文件:

# goctl api go -api add.api -dir .
Done.

编译成功后的目录结构:

.
├── add.api
├── adder.go # 服务端 main 函数所在文件
├── etc
│   └── adder.yaml # 配置文件
└── internal├── config│   └── config.go # 和配置对应的数据结构├── handler # HTTP 部分代码│   ├── addhandler.go│   └── routes.go├── logic│   └── addlogic.go # 需要实现的业务逻辑代码├── svc│   └── servicecontext.go # 上下文└── types└── types.go # 对应 API 中定义的数据结构

在进一步之前,还需执行“go mod tidy”整理依赖。

目录 etc 下的配置文件 adder.yaml 定义的 API 网关服务的服务端口等:

# cat etc/adder.yaml 
Name: Adder
Host: 0.0.0.0
Port: 8888

如上所示,go-zero 脚手架 goctl 设置的监听端口为 8888 。

  • 编译生成可执行程序文件
go mod tidy
go build -o add_http_server adder.go
  • 启动服务:
# ./add_http_server 
Starting server at 0.0.0.0:8888...
  • 测试服务是否可用:
# curl -i "http://localhost:8888/add"
HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8
Traceparent: 00-97de89193a15ff3704beeab6ab01cbc5-448ad910b934da13-00
Date: Thu, 07 Dec 2023 07:09:36 GMT
Content-Length: 4null

接口实现

go-zero 的脚手架 goctl 生成的是一个空服务,除了返回 null,啥也没干。在函数 Add 中增加实现:

# cat internal/logic/addlogic.go 
package logicimport ("context""api/internal/svc""api/internal/types""github.com/zeromicro/go-zero/core/logx"
)type AddLogic struct {logx.Loggerctx    context.ContextsvcCtx *svc.ServiceContext
}func NewAddLogic(ctx context.Context, svcCtx *svc.ServiceContext) *AddLogic {return &AddLogic{Logger: logx.WithContext(ctx),ctx:    ctx,svcCtx: svcCtx,}
}func (l *AddLogic) Add(req *types.AddReq) (resp *types.AddReply, err error) {// todo: add your logic here and delete this lines := req.A + req.B // 新增代码return &types.AddReply{ s }, nil // 新增代码return
}

重新编译执行:

# curl -i "http://localhost:8888/add?a=1&b=3"
HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8
Traceparent: 00-33930e740d4d642dd8a16667af5f6a60-cb450c0bdbb9f6fc-00
Date: Fri, 08 Dec 2023 02:58:48 GMT
Content-Length: 9{"sum":4}
http://www.yayakq.cn/news/630220/

相关文章:

  • wordpress模板 户外钓鱼类网站搜狐视频
  • 国外网站如何备案百度竞价排名是哪种方式
  • 博兴网站建设招聘泰安网站优化
  • 吴江设计网站公司有哪些公司做网站
  • 湖南网站建设磐石网络口碑好网站开发的基本原则
  • 建设公众号官方网站站长素材音效网
  • dedecms 网站地图生成重庆最好的网站建设公司
  • 服装网站设计欣赏百度怎么注册店面地址
  • 搭建一个网址佛山债优化公司
  • 网站维护一般要几天亿诚建设项目管理有限公司网站
  • 广东省住房与城乡建设部网站网站维护基础知识
  • 怎么申请网页域名seo优化在线诊断
  • 做彩票的网站有哪些基础型网站
  • html电影网站模板下载工具靖江做网站单位
  • 门户网站建设工作讲话应用商店网站模板
  • 网站编辑面试问题和答案外贸网站建设上海
  • 网站建设维修服务流程天津模板建站哪家好
  • 免费网站建设创意河北项目网
  • wordpress网站攻击北京网站推广
  • 建设银行网站密码忘记了咋办关于对网站建设工作情况的通报
  • 买域名去哪个网站好教你做企业网站
  • 成都建立公司网站网站负责人姓名
  • 阿里云服务器建网站企业咨询管理收费标准
  • 关于加强门户网站建设买表的网站
  • 自己想做网站兼积做调查挣钱网站
  • 黄岛网站建设公司建设工程施工合同专属管辖
  • 汕头网站建设 网络服务简洁大方的电商网站模板
  • 一个手机网站嘉兴做网站优化的公司
  • 网站开发用了哪些技术百度seo通科
  • 浙江网站建设推广公司哪家好wordpress 取消评论审核