CRUD
Method
Endpoint
Deskripsi
11.1 Create User
11.1.1 Repository Layer โ Create
// internal/repository/user_repository.go
type UserRepository interface {
List() ([]model.User, error)
Create(*model.User) error // โ tambahan
// ... method lainnya
}
func (u *userRepository) Create(user *model.User) error {
query := `INSERT INTO users (id, name, username, password, email, is_active)
VALUES ($1, $2, $3, $4, $5, $6)`
_, err := u.db.Exec(query, user.ID, user.Name, user.Username,
user.Password, user.Email, user.IsActive)
if err != nil {
u.log.Error(context.Background(), "error: inserting user", slog.Any("error", err))
return err
}
return nil
}11.1.2 Service Layer โ Create dengan Business Logic
11.1.3 DTO โ UserRequest (Input)
11.1.4 Handler Layer โ Create
11.2 Read (Get by ID)
11.2.1 Repository โ FindById
11.2.2 Service โ FindById
11.2.3 Handler โ FindById dengan Path Parameter
11.3 Update
11.3.1 DTO โ UserUpdateRequest
11.3.2 Repository โ Update dengan RETURNING
11.3.3 Service โ Update dengan Validasi Keberadaan
11.3.4 Handler โ Update
11.4 Delete (Soft Delete)
11.4.1 Konsep Soft Delete
11.4.2 Repository โ Delete (Soft)
11.4.3 Service โ Delete
11.4.4 Handler โ Delete (No Content)
11.5 Routing Lengkap
11.6 Testing CRUD dengan cURL
Create User
List Users
Get User by ID
Update User
Delete User
Ringkasan Bab 11
Operasi
Method
Endpoint
Status Code
Last updated