# yellow_web **Repository Path**: yanchenjisui/yellow_web ## Basic Information - **Project Name**: yellow_web - **Description**: sacabam - **Primary Language**: Go - **License**: MulanPSL-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2023-09-26 - **Last Updated**: 2023-10-21 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README 这个项目是仿照他人教程写的,属于个人学习练手的项目 ### 第三方库依赖 viper 文件配置读取 gorm 数据库相关的数据操作 lumberjack 将日志写入滚动文件中 swagger 维护接口文档 validator 基于标签来对结构体和字段进行值验证 jwt 对接口进行访问控制 Gomail 发送电子邮件 ratelimit 实现限流器 jaeger 链路追踪 opentracing fsnotify 配置热更新 ### 请求jwt令牌(匹配数据库中的内容): 示例请求: curl -v -X POST "http://127.0.0.1:8080/auth?app_key=eddycjy&app_secret=go-programming-tour-book" 示例输出-> {"token":"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhcHBfa2V5IjoiMjc1NjY4YmE2NTUwNDljZDczOWQxZDllNmIzMWNjZjEiLCJhcHBfc2VjcmV0IjoiN2M5NzI2NjMxNzBkNmJjMTg0ODRkMDViYzk4NzIyZjQiLCJleHAiOjE2OTUyMDc1NDYsImlzcyI6ImJsb2ctc2VydmljZSJ9._x_66j68J062F2dqgUGDGeaRvmfGc4O5mz1OD0oKh8A"}* Connection #0 to host 127.0.0.1 left intact ### 用jwt令牌访问: 示例请求: curl -X GET "http://127.0.0.1:8080/swagger/index.html?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhcHBfa2V5IjoiMjc1NjY4YmE2NTUwNDljZDczOWQxZDllNmIzMWNjZjEiLCJhcHBfc2VjcmV0IjoiN2M5NzI2NjMxNzBkNmJjMTg0ODRkMDViYzk4NzIyZjQiLCJleHAiOjE2OTUyMTM4MjMsImlzcyI6ImJsb2ctc2VydmljZSJ9.UwGHVmP6eaxGenxjhycb0D1t8TBNKpgTb5PeUobzD0k" ### 查看swagger文档: curl -X GET "http://127.0.0.1:8080/swagger/index.html" ### 上传图片: 示例请求: curl -X POST http://127.0.0.1:8080/upload/file -F file=@./static/img/cumulus_avr.png -F type=1 示例输出-> {"file_access_url":"http://127.0.0.1:8080/static/cb8d11b25d38a336784266cecd5d7526.png"} ### 项目目录结构: . │ go.mod │ go.sum │ go.work │ go.work.sum │ main.go │ readme.md │ ├─cml_internal-------------(内部模块) │ ├─dao-----------------------(数据访问层、Database Access Object) │ │ article.go │ │ article_tag.go │ │ auth.go │ │ dao.go │ │ tag.go │ │ │ ├─middleware----------------(HTTP 中间件) │ │ access_log.go │ │ app_info.go │ │ context_timeout.go │ │ jwt.go │ │ limiter.go │ │ recovery.go │ │ tracer.go │ │ translations.go │ │ │ ├─model---------------------(模型层,用于存放 model 对象) │ │ article.go │ │ article_tag.go │ │ auth.go │ │ model.go │ │ tag.go │ │ │ ├─routers-------------------(路由相关逻辑处理) │ │ │ router.go │ │ │ │ │ └─api │ │ │ auth.go │ │ │ metrics.go │ │ │ upload.go │ │ │ │ │ └─v1 │ │ article.go │ │ tag.go │ │ │ └─service-------------------(项目核心业务逻辑) │ article.go │ auth.go │ service.go │ tag.go │ upload.go │ ├─configs------------------(配置文件) │ config.go │ config.yaml │ ├─docs---------------------(文档集合) │ docs.go │ swagger.json │ swagger.yaml │ ├─global-------------------(全局变量) │ db.go │ setting.go │ tracer.go │ validator.go │ ├─pkg----------------------(项目相关的模块包) │ ├─app │ │ app.go │ │ form.go │ │ jwt.go │ │ pagination.go │ │ │ ├─convert │ │ convert.go │ │ │ ├─email │ │ email.go │ │ │ ├─errcode │ │ common_code.go │ │ errcode.go │ │ module_code.go │ │ │ ├─limiter │ │ limiter.go │ │ method_limiter.go │ │ │ ├─logger │ │ logger.go │ │ │ ├─setting │ │ section.go │ │ setting.go │ │ │ ├─tracer │ │ tracer.go │ │ │ ├─upload │ │ file.go │ │ │ ├─util │ │ md5.go │ │ │ └─validator │ custom_validator.go │ ├─static-------------------(本地资源) │ ├─img │ │ cumulus_avr.png │ │ │ └─txt └─storage------------------(项目生成的临时文件) ├─logs │ app.log │ └─uploads cb8d11b25d38a336784266cecd5d7526.png