Update template go
This commit is contained in:
111
tools/HANDLER.md
Normal file
111
tools/HANDLER.md
Normal file
@@ -0,0 +1,111 @@
|
||||
# Handler Generator CLI Tool
|
||||
|
||||
CLI tool untuk generate handler baru secara otomatis dengan swagger documentation.
|
||||
|
||||
## Cara Penggunaan
|
||||
|
||||
### Windows
|
||||
```bash
|
||||
# Buka terminal di folder tools
|
||||
generate.bat <nama-handler> [methods]
|
||||
|
||||
# Contoh:
|
||||
generate.bat user get post
|
||||
generate.bat product get post put delete
|
||||
```
|
||||
|
||||
### Linux/Mac
|
||||
```bash
|
||||
# Buka terminal di folder tools
|
||||
./generate.sh <nama-handler> [methods]
|
||||
|
||||
# Contoh:
|
||||
./generate.sh user get post
|
||||
./generate.sh product get post put delete
|
||||
```
|
||||
|
||||
### Langsung dengan Go
|
||||
```bash
|
||||
# Dari root project
|
||||
# .. run tools/generate-handler.go : Perintahnya
|
||||
# .. user nama module nya dan handlernya
|
||||
# .. get post put delete metod yang di gunakan
|
||||
go run tools/generate-handler.go user get post put delete
|
||||
```
|
||||
|
||||
## Method yang Tersedia
|
||||
- `get` - GET endpoint untuk list data
|
||||
- `post` - POST endpoint untuk create data
|
||||
- `put` - PUT endpoint untuk update data
|
||||
- `delete` - DELETE endpoint untuk delete data
|
||||
|
||||
## File yang Dibuat Otomatis
|
||||
|
||||
1. **Handler**: `internal/handlers/<nama>.go`
|
||||
2. **Models**: `internal/models/<nama>.go`
|
||||
3. **Routes**: Update otomatis di `internal/routes/v1/routes.go`
|
||||
|
||||
## Contoh Penggunaan
|
||||
|
||||
### 1. Generate Handler dengan GET dan POST
|
||||
```bash
|
||||
./generate.sh user get post
|
||||
```
|
||||
|
||||
### 2. Generate Handler dengan semua method
|
||||
```bash
|
||||
./generate.sh product get post put delete
|
||||
```
|
||||
|
||||
### 3. Generate Handler dengan custom method
|
||||
```bash
|
||||
./generate.sh order get post delete
|
||||
```
|
||||
|
||||
## Langkah Setelah Generate
|
||||
|
||||
1. Jalankan swagger generator:
|
||||
```bash
|
||||
swag init -g cmd/api/main.go --output cmd/api/docs
|
||||
```
|
||||
|
||||
2. Jalankan aplikasi:
|
||||
```bash
|
||||
go run cmd/api/main.go
|
||||
```
|
||||
|
||||
3. Akses swagger UI:
|
||||
```
|
||||
http://localhost:8080/swagger/index.html
|
||||
```
|
||||
|
||||
## Struktur File yang Dibuat
|
||||
|
||||
### Handler File (`internal/handlers/<nama>.go`)
|
||||
- Struct handler
|
||||
- Constructor function
|
||||
- Endpoint methods dengan swagger documentation
|
||||
- Error handling
|
||||
|
||||
### Model File (`internal/models/<nama>.go`)
|
||||
- Request models
|
||||
- Response models
|
||||
- Error response models
|
||||
|
||||
### Routes Update
|
||||
- Otomatis menambahkan routes ke `/api/v1/<nama-plural>`
|
||||
- Support parameter ID untuk endpoint spesifik
|
||||
|
||||
## Contoh Output
|
||||
|
||||
Untuk command: `./generate.sh user get post`
|
||||
|
||||
### Handler yang dibuat:
|
||||
- `GET /api/v1/users` - List users
|
||||
- `GET /api/v1/users/:id` - Get user by ID
|
||||
- `POST /api/v1/users` - Create new user
|
||||
|
||||
### Swagger Documentation
|
||||
Semua endpoint otomatis memiliki swagger documentation yang bisa diakses di:
|
||||
```
|
||||
http://localhost:8080/swagger/index.html
|
||||
Reference in New Issue
Block a user