当 go-zero 邂逅 chatgpt...

简介: 当 go-zero 邂逅 chatgpt...

前言

使用 chatgpt 已久,帮我大幅提升了工作效率。之前用官方web版,由于网络原因,经常问题回答到一半,没有下文了。然后自己搭建了一个基于 api key 的服务,太稳定了,真香!

今晚在想,是不是可以引导 go-zero 社区同学通过 chatgpt 来自助寻求帮助呢?于是,我就试了一下,结果。。。

很赞!

调教 chatgpt

没有使用任何复杂的 prompt,直接上。。。

我的提问:给 go 新手写个文章介绍怎么用 go-zero 编写一个简单的 web service

回答是使用的老版本的 go-zero,但内容是基本正确的,我告诉她,你 out 了,要用新版本,要用 Go 1.18,然后。。。

我的提问:给 go 新手写个文章介绍怎么用 go-zero 编写一个简单的 web service,使用go 1.18,使用go install安装goctl,而不是使用go get

以下是 chatgpt 的回答,一气呵成!


在本文中,我们将学习如何使用go-zero框架编写一个简单的web服务。我们将使用Go 1.18版本,以及github.com/zeromicro/go-zero库和github.com/zeromicro/go-zero/tools/goctl工具。

环境准备

首先确保你已经安装了Go 1.18。你可以通过运行以下命令来验证:

go version

接下来,安装go-zero库:

go get -u github.com/zeromicro/go-zero

然后,安装goctl工具:

go install github.com/zeromicro/go-zero/tools/goctl@latest

请确保 $GOPATH/bin 目录已经添加到您的 PATH 环境变量中。

创建项目

创建一个新的目录并进入该目录:

mkdir gozeroweb && cd gozeroweb

初始化go模块:

go mod init example.com/gozeroweb

编写API定义文件

在项目目录中,创建一个名为api.greet.api的文件,并添加以下内容:

type GreetReq struct {
 Name string `path:"name"`
}
type GreetResp struct {
 Message string `json:"message"`
}
service greet-api {
 @handler GreetHandler
 get /greet/from/:name(GreetReq) returns (GreetResp);
}

这个文件定义了一个名为greet-api的服务,它包含一个GET请求,用于处理/greet/from/:name路径,并返回一个GreetResp类型的响应。

生成代码

使用goctl工具根据API定义文件生成代码:

goctl api go -api api.greet.api -dir .

这将在当前目录下生成greet.goetc/greet-api.yaml两个文件。

实现业务逻辑

修改greet.go文件,实现GreetHandler逻辑:

package main
import (
 "net/http"
 "example.com/gozeroweb/api"
 "example.com/gozeroweb/internal/config"
 "example.com/gozeroweb/internal/svc"
 "github.com/zeromicro/go-zero/rest/httpx"
)
func NewGreetHandler(ctx *svc.ServiceContext) http.HandlerFunc {
 return func(w http.ResponseWriter, r *http.Request) {
  var req api.GreetReq
  err := httpx.Parse(r, &req)
  if err != nil {
   http.Error(w, err.Error(), http.StatusBadRequest)
   return
  }
  message := "Hello, " + req.Name
  resp := api.GreetResp{Message: message}
  httpx.OkJson(w, resp)
 }
}
func main() {
 flag.Parse()
 var c config.Config
 conf.MustLoad(*configFile, &c)
 ctx := svc.NewServiceContext(c)
 server := rest.NewServer(c.RestConf)
 defer server.Stop()
 handler.RegisterHandlers(server, ctx)
 fmt.Printf("Starting server at %s:%d...\n", c.Host, c.Port)
 server.Start()
}

配置并运行服务

修改etc/greet-api.yaml以配置服务:

Name: greet-api
Host: 0.0.0.0
Port: 8080

运行服务:

go run greet.go -f etc/greet-api.yaml

启动后,你可以通过访问http://localhost:8080/greet/from/YourName来测试服务。


以上是 chatgpt 的回答,你满意嘛?

我也尝试了 google 的 bard,google 这方面确实落后了点。。。

然后呢?!

欢迎加入 go-zero 社区群,在群里跟大家分享 chatgpt & go-zero 让你惊讶的故事!

后续我们也会整理关于 go-zero 的实用 prompt 列表给大家,敬请期待。

项目地址

go-zero 微服务框架:https://github.com/zeromicro/go-zero

相关文章
|
11月前
|
存储 编译器 Go
结合ChatGPT辅助学习Go语言底层原理
在当今的信息时代,编程语言已经成为了科技领域的基础工具之一。其中,Go语言以其简洁、高效和并发性强等优点,在开发者中赢得了广泛的好评。然而,对于初学者或是想要深入理解Go语言底层原理的人来说,直接阅读和理解其源码可能会面临一定困难。我主要从以下几个方面分享一些使用ChatGPT辅助学习Go语言底层源码的小技巧。
236 0
结合ChatGPT辅助学习Go语言底层原理
|
1月前
|
人工智能 自然语言处理 程序员
使用 go-openai 轻松调用 chatGPT:释放无限创造力!
使用 go-openai 轻松调用 chatGPT:释放无限创造力!
|
10月前
|
JSON 人工智能 API
用 Go 编写 ChatGPT 插件
用 Go 编写 ChatGPT 插件
47 0
|
JavaScript Java 程序员
【chatgpt】openai api 接口调用(go语言版)
【chatgpt】openai api 接口调用(go语言版)
915 0
|
1月前
|
人工智能 自然语言处理 搜索推荐
chatgpt这么火,现在AI搜索引擎有哪些呢?
国外AI搜索引擎包括ChatGPT,擅长自然语言处理与内容生成;Google Bard,提供智能个性化搜索体验;Microsoft Bing集成GPT模型增强智能检索;Perplexity AI以简洁答案及文献引用著称;Neeva强调隐私保护与无广告服务。国内方面,天工AI支持多种功能如知识问答与代码编程;腾讯元宝基于混元模型助力内容创造与学习;360AI搜索以精准全面的信息搜索见长;秘塔AI专注提升写作质量和效率;开搜AI搜索提供个性化智能搜索服务。以上引擎均利用先进AI技术提升用户体验。更多详情参阅[AI搜索合集](zhangfeidezhu.com/?page_id=651)。
76 8
chatgpt这么火,现在AI搜索引擎有哪些呢?
|
29天前
|
机器学习/深度学习 人工智能 自然语言处理
HuggingGPT解析:使用 ChatGPT及HuggingFace上的族系解决AI问题
HuggingGPT是一个框架,它使用大型语言模型(如ChatGPT)作为控制器来管理和协调Hugging Face上的AI模型,以语言作为通用接口解决多模态和领域的复杂AI任务。
27 0
HuggingGPT解析:使用 ChatGPT及HuggingFace上的族系解决AI问题
|
21天前
|
机器学习/深度学习 人工智能 算法
为什么ChatGPT等AI大模型都是基于Python开发?
为什么ChatGPT等AI大模型都是基于Python开发?
|
1月前
|
人工智能 自然语言处理 Linux
免费ChatGPT4o灵办AI可体验浏览器插件
灵办AI就是您所需的最佳助手!我们为您带来了一款多功能AI工具,ChatGPT4o不仅能为您提供精准翻译,还能满足您的对话需求、智能续写、AI搜索、文档阅读、代码生成与修正等多种需求。灵办 AI,真正让工作和学习变得轻松高效!一款多功能智能助手,旨在提升工作和学习效率。它提供实时翻译、对话问答、搜索、写作和网页阅读等服务,支持多种浏览器和操作系统,帮助用户随时获取信息,打破语言障碍,优化内容创作和信息处理。
|
1月前
|
Web App开发 人工智能 安全
Gemini vs ChatGPT:谷歌最新的AI和ChatGPT相比,谁更强?
Gemini vs ChatGPT:谷歌最新的AI和ChatGPT相比,谁更强?
|
1月前
|
人工智能 安全 机器人
ChatGPT 1岁:创新、争议和AI产生突破的一年
ChatGPT 1岁:创新、争议和AI产生突破的一年