软件基础组成部分
Service, Endpoint, Transport
- service 核心逻辑: interface 定义 + struct 实现
- 定义 Protobuffer 后自动生成 或者 手动定义 请求返回数据结构
- 将请求返回数据结构封装成 Endpoint, 其中数据处理使用定义好的 service 核心逻辑
- 将 Endpoint 封装一层 http, grpc… 协议 定义 Transport, 可以供外部请求连接访问
定义 service
service.go
1 | import ( |
定义 Protobuf 请求返回数据结构
编写 Protobuf 文件 service.proto
1 | syntax = "proto3"; |
使用 Protobuf 生成对应的 pb.go
文件
1 | protoc service.proto --go_out=. |
将 service 和 proto 封装成 Endpoint, 将 Endpoint 封装 http 协议构建 Http Transport
编写 transport.go
文件
1 | import ( |
启动 Http 服务加载 Http Transport
1 | import ( |
启动服务
以上所有文件, 都隶属于 package main
.
启动服务
1 | go run . |
请求测试
1 | curl -XPOST -d'{"s":"hello, world"}' localhost:8080/uppercase |