Mortar 项目使用教程
1. 项目目录结构及介绍
Mortar 是一个用于构建 gRPC 和 REST 服务的 Go 框架/库。以下是 Mortar 项目的目录结构及其介绍:
mortar/
├── auth/
│ └── jwt/
├── constructors/
├── handlers/
├── http/
├── interfaces/
├── logger/
├── middleware/
├── monitoring/
├── mortar/
├── providers/
├── third_party/
│ └── googleapis/
├── utils/
├── wiki/
├── .gitignore
├── LICENSE
├── Makefile
├── README.md
├── go.mod
├── go.sum
目录介绍
- auth/jwt/: 包含与 JWT 认证相关的代码。
- constructors/: 包含对象构造器的代码。
- handlers/: 包含 HTTP 和 gRPC 处理程序的代码。
- http/: 包含与 HTTP 相关的代码。
- interfaces/: 包含项目中使用的接口定义。
- logger/: 包含日志记录相关的代码。
- middleware/: 包含中间件相关的代码。
- monitoring/: 包含监控和指标相关的代码。
- mortar/: 包含 Mortar 框架的核心代码。
- providers/: 包含服务提供者相关的代码。
- third_party/googleapis/: 包含第三方库,如 Google API 的代码。
- utils/: 包含通用工具函数。
- wiki/: 包含项目的 Wiki 文档。
- .gitignore: Git 忽略文件。
- LICENSE: 项目许可证。
- Makefile: 项目构建文件。
- README.md: 项目介绍和使用说明。
- go.mod: Go 模块定义文件。
- go.sum: Go 模块依赖校验文件。
2. 项目启动文件介绍
Mortar 项目的启动文件通常位于 mortar/
目录下。以下是一个典型的启动文件示例:
package main
import (
"github.com/go-masonry/mortar/mortar"
"github.com/go-masonry/mortar/providers"
)
func main() {
// 初始化 Mortar 应用
app := mortar.NewApp()
// 注册服务提供者
app.RegisterProviders(
providers.NewLoggerProvider(),
providers.NewConfigProvider(),
providers.NewMonitoringProvider(),
)
// 启动应用
app.Run()
}
启动文件介绍
- mortar.NewApp(): 创建一个新的 Mortar 应用实例。
- app.RegisterProviders(): 注册服务提供者,如日志、配置和监控等。
- app.Run(): 启动应用。
3. 项目的配置文件介绍
Mortar 项目的配置文件通常使用 YAML 格式,位于项目的根目录下。以下是一个典型的配置文件示例:
# config.yml
server:
port: 8080
host: "0.0.0.0"
logging:
level: "info"
format: "json"
monitoring:
prometheus:
enabled: true
endpoint: "/metrics"
配置文件介绍
- server: 配置服务器的端口和主机地址。
- logging: 配置日志级别和格式。
- monitoring: 配置监控相关的选项,如 Prometheus 的启用和端点。
通过以上配置文件,可以灵活地调整 Mortar 应用的行为。