simple-bank

command module
v0.0.0-...-f99db60 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Sep 17, 2024 License: MIT Imports: 4 Imported by: 0

README

simple-bank

my project for backend master class

repository of the class by TECH SCHOOL: https://github.com/techschool/simplebank

Setting up

db migration

cli工具: https://github.com/golang-migrate/migrate

初始化: migrate create -ext sql -dir db/migration -seq $(name)

执行变更到db: migrate -path db/migration -database "$(DB_URL)" -verbose up

sql compiler (golang)

cli工具:https://github.com/sqlc-dev/sqlc

sqlc基本配置:https://docs.sqlc.dev/en/latest/reference/config.html

sqlc基本语法:https://docs.sqlc.dev/en/latest/tutorials/getting-started-postgresql.html#schema-and-queries

API Definition

pb validation

protoc插件:https://github.com/bufbuild/protoc-gen-validate

使用规则:https://github.com/bufbuild/protoc-gen-validate?tab=readme-ov-file#constraint-rules

method annotations

使用option进行标注,定义为HTTP方法。

protoc插件:https://github.com/varluffy/protoc-gen-go-gin 因为后续会使用Gin框架,所以插件生成的handler需要和Gin handler函数签名保持一致。 同时生成的桩代码包含了RegisterService()方法,所以无需手动注册路由。

pb tag

Gin在绑定uri(ShouldBindUri)时,需要对应结构体包含"uri"标记字段。

cli工具:https://github.com/favadi/protoc-go-inject-tag

third_party

bank.proto的依赖pb文件。

generate
protoc --proto_path=./api/bank/v1 \
        --proto_path=./third_party \
        --go_out ./api/bank/v1 --go_opt=paths=source_relative \
        --go-gin_out ./api/bank/v1 --go-gin_opt=paths=source_relative \
        --validate_out=paths=source_relative,lang=go:./api/bank/v1 \
        bank.proto

protoc-go-inject-tag -input="./api/bank/v1/*.pb.go"

Documentation

Overview

Package main ...

Directories

Path Synopsis
api
internal
biz/auth
Package auth 用户鉴权逻辑
Package auth 用户鉴权逻辑
biz/token
Package token 提供JSON Web Token认证能力
Package token 提供JSON Web Token认证能力
biz/token/jwt
Package jwt 提供JSON Web Token实现
Package jwt 提供JSON Web Token实现
biz/token/paseto
Package paseto 提供Paseto Token实现
Package paseto 提供Paseto Token实现
config
Package config 服务配置
Package config 服务配置
data
Package data 封装db方法
Package data 封装db方法
deps
Package 服务依赖
Package 服务依赖
gateway/auth
Package auth 自定义鉴权中间件
Package auth 自定义鉴权中间件
gateway/validator
Package validator 自定义校验插件
Package validator 自定义校验插件
gateway/validator/currency
Package currency 自定义校验插件
Package currency 自定义校验插件
random
Package random 自定义random工具
Package random 自定义random工具
server
Package server 服务运行层
Package server 服务运行层
service
Package service 服务逻辑层-实现API接口
Package service 服务逻辑层-实现API接口

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL