我们正在将原型服务转移到生产环境。我没有找到任何在 golang sql 库中进行 mysql 读取复制的最佳库/方法。
我们的Mysql数据库服务运行在AWS RDS上(一主二从)。
需要进行以下操作。
目前我们只有一个数据库连接。
import (
"database/sql"
_ "github.com/go-sql-driver/mysql"
)
db, err := sql.Open("mysql", "root:password@tcp(localhost:3306)/test")
Run Code Online (Sandbox Code Playgroud)
我们如何使我们的数据库实例与 golang 中的只读副本一起使用?谢谢。
我正在 golang 中编写其余 api,结构如下
处理程序类:
type Controller struct {
db daos.IUserDB
}
func NewController(db daos.IUserDB) *Controller{
return &Controller{db:db}
}
func (c *Controller) Test(w http.ResponseWriter, r *http.Request) {
fmt.Fprintf(w, "Welcome to the HomePage!")
}
func (c *Controller) RegisterRoutes(r *mux.Router){
r.HandleFunc("/test", c.Test).Methods("GET")
}
Run Code Online (Sandbox Code Playgroud)
DAO 类
type IUserDB interface {
Get
GetByID ...
}
type userDAO struct {
db *sql.DB
}
func NewDB(dataSourceName string) (*userDAO, error) {
db, err := sql.Open("mysql", dataSourceName)
if err != nil {
return nil, err
}
if err …
Run Code Online (Sandbox Code Playgroud) 验证发布请求 DTO bean 的推荐/最佳方法是什么?如果验证失败,我需要发送自定义错误消息,例如
{
"code": "invalid_fields",
"fields": {
"email": "Required",
"password": "Required",
}
}
Run Code Online (Sandbox Code Playgroud)
DTO模型
public class SignUpRequest {
@JsonProperty("email")
String email;
@JsonProperty("password")
String password;
public Result validate(){
}
}
Run Code Online (Sandbox Code Playgroud)
控制器
@PostMapping(value = "/register")
public ResponseEntity<Object> signupRider(@RequestBody SignUpRequest signUpRequest) {
Result result = signUpRequest.validate();
return new ResponseEntity<>(x, HttpStatus.OK);
}
Run Code Online (Sandbox Code Playgroud)
SignUpRequest DTO 具有 validate 方法。 spring 进行验证的方式是什么?
谢谢。