New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

github.com/CocaineCong/gRPC-todoList

Package Overview
Dependencies
Alerts
File Explorer
Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

github.com/CocaineCong/gRPC-todoList

  • v0.0.0-20230704144229-e3d80afdd00e
  • Source
  • Go
  • Socket score

Version published
Created
Source

gRPC-todoList

gin+grpc+gorm+etcd+mysql 的备忘录功能

注意

V2版本和v1版本的项目结构改变很大。

项目主要依赖

  • gin
  • gorm
  • etcd
  • grpc
  • jwt-go
  • logrus
  • viper
  • protobuf

项目结构

1.grpc_todolist 项目总体

grpc-todolist/
├── app                   // 各个微服务
│   ├── gateway           // 网关
│   ├── task              // 任务模块微服务
│   └── user              // 用户模块微服务
├── bin                   // 编译后的二进制文件模块
├── config                // 配置文件
├── consts                // 定义的常量
├── doc                   // 接口文档
├── idl                   // protoc文件
│   └── pb                // 放置生成的pb文件
├── logs                  // 放置打印日志模块
├── pkg                   // 各种包
│   ├── e                 // 统一错误状态码
│   ├── discovery         // etcd服务注册、keep-alive、获取服务信息等等
│   ├── res               // 统一response接口返回
│   └── util              // 各种工具、JWT、Logger等等..
└── types                 // 定义各种结构体

2.gateway 网关部分

gateway/
├── cmd                   // 启动入口
├── internal              // 业务逻辑(不对外暴露)
│   ├── handler           // 视图层
│   └── service           // 服务层
│       └── pb            // 放置生成的pb文件
├── logs                  // 放置打印日志模块
├── middleware            // 中间件
├── routes                // http 路由模块
└── rpc                   // rpc 调用

3.user && task 用户与任务模块

user/
├── cmd                   // 启动入口
└──internal               // 业务逻辑(不对外暴露)
   ├── service            // 业务服务
   └── repository         // 持久层
       └── db             // 视图层
           ├── dao        // 对数据库进行操作
           └── model      // 定义数据库的模型

项目完善

🎈最新版本是 v2 ,欢迎大家将自己的想法pr到版本对应分支,CR通过后,我们将合并到main分支。

  • 添加熔断机制
  • ....其他想法

项目文件配置

config/config.yml文件,直接将 config.yml.example-->config.yml 就可以了

server: # 项目配置
  port: :4000 # 项目端口
  version: 1.0 
  jwtSecret: 38324

mysql: # mysql相关配置
  driverName: mysql
  host: 127.0.0.1
  port: 3306
  database: grpc_todolist
  username: grpc_todolist
  password: grpc_todolist
  charset: utf8mb4

redis: # redis相关配置,其实没有用到redis...
  user_name: default
  address: 127.0.0.1:6379
  password:

etcd: # etcd相关配置
  address: 127.0.0.1:2379

services: # 各个微服务的配置
  gateway:
    name: gateway
    loadBalance: true
    addr:
      - 127.0.0.1:10001
  user:
    name: user
    loadBalance: false
    addr:
      - 127.0.0.1:10002 # user模块地址
  task:
    name: task
    loadBalance: false
    addr:
      - 127.0.0.1:10003 # task模块地址

domain:
  user:
    name: user
  task:
    name: task

项目启动

makefile启动

启动命令

make env-up         # 启动容器环境
make user           # 启动用户摸块
make task           # 启动任务模块
make gateway        # 启动网关
make env-down       # 关闭并删除容器环境

其他命令

make proto # 生成proto文件,如果proto有改变的话,则需要重新生成文件

生成.pb文件所需要的工具有protoc-gen-go,protoc-gen-go-grpc,protoc-go-inject-tag

手动启动

  1. 利用compose快速构建环境
docker-compose up -d
  1. 保证mysql,etcd活跃, 在 app 文件夹下的各个模块的 cmd 下执行
go run main.go

导入接口文档

打开postman,点击导入

postman导入

选择导入文件 选择导入接口文件

导入

效果

postman

FAQs

Package last updated on 04 Jul 2023

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc