Golang 和 MongoDB 中的六边形软件架构
本项目提供了一个简单的产品目录微服务,用于演示六边形软件架构的原则。该微服务暴露了一个 RESTful API,允许消费应用程序对产品目录执行 CRUD 操作。该微服务使用 Golang 开发,产品目录数据持久化在 MongoDB 仓库中。
先决条件
- Go 1.18 或更高版本
- MongoDB
- Go 模块
设置
-
克隆仓库
git clone https://github.com/gofiber/recipes.git
cd recipes/hexagonal -
安装依赖
go mod tidy
-
在
config.json
文件中配置 MongoDB 连接{
"DB_URI": "your_mongodb_uri",
"DB_Name": "your_db_name"
}
运行应用程序
-
运行应用程序
go run main.go
-
服务器将在
http://localhost:3000
启动。
端点
方法 | URL | 描述 |
---|---|---|
GET | /api/v1/products | 检索所有产品 |
GET | /api/v1/product/:id | 根据 ID 检索产品 |
POST | /api/v1/product | 创建新产品 |
PUT | /api/v1/product/:id | 更新现有产品 |
DELETE | /api/v1/product/:id | 删除产品 |
示例请求
获取所有产品
curl -X GET http://localhost:3000/api/v1/products
根据 ID 获取产品
curl -X GET http://localhost:3000/api/v1/product/1
创建新产品
curl -X POST http://localhost:3000/api/v1/product -d '{"name": "New Product", "price": 100}' -H "Content-Type: application/json"
更新产品
curl -X PUT http://localhost:3000/api/v1/product/1 -d '{"name": "Updated Product", "price": 150}' -H "Content-Type: application/json"
删除产品
curl -X DELETE http://localhost:3000/api/v1/product/1
六边形架构
六边形架构,也称为端口和适配器架构,是一种设计模式,用于创建松散耦合的应用程序组件,这些组件可以通过端口和适配器轻松连接到其软件环境。这种架构允许应用程序能够同样被用户、程序、自动化测试或批处理脚本驱动,并能够独立于其最终的运行时设备和数据库进行开发和测试。
附加信息
有关六边形架构的更多信息,您可以参考以下资源