buf connect-go 路由
buf connect-go 的路由,只是利用了golang http handler 的特性
参考使用
package main
import (
"context"
"log"
"net/http"
"github.com/bufbuild/connect-go"
userloginv1 "github.com/rongfengliang/go-connect-app/pkg/userlogin/v1"
userloginv1connect "github.com/rongfengliang/go-connect-app/pkg/userlogin/v1/userloginv1connect"
"golang.org/x/net/http2"
"golang.org/x/net/http2/h2c"
)
type UserLogin struct{}
func (s *UserLogin) Login(
ctx context.Context,
req *connect.Request[userloginv1.LoginRequest],
) (*connect.Response[userloginv1.LoginResponse], error) {
log.Println("Request headers: ", req.Header())
log.Println("Request username: ", req.Msg.Username)
res := connect.NewResponse(&userloginv1.LoginResponse{
Token: "demoapp",
Exprise: 100,
})
res.Header().Set("userlogin-Version", "v1")
return res, nil
}
func main() {
userlogin := &UserLogin{}
api := http.NewServeMux()
api.Handle(userloginv1connect.NewUserLoginServiceHandler(userlogin))
mux := http.NewServeMux()
// 使用http.StripPrefix 进行处理
mux.Handle("/grpc/", http.StripPrefix("/grpc", api))
http.ListenAndServe(
"0.0.0.0:8080",
h2c.NewHandler(mux, &http2.Server{}),
)
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)
2020-09-18 openresty+pdf.js 实现一个通用的pdf预览服务
2019-09-18 cronicle minio s3 存储配置集成
2019-09-18 cronicle 任务调度一主多从安装试用
2018-09-18 socat 广播以及多播
2018-09-18 socat 简单试用