feat: Update API routes and enhance Swagger documentation for activity handler
This commit is contained in:
parent
4b98c1a9e5
commit
9f8eab0fac
@ -54,7 +54,7 @@ func main() {
|
|||||||
r := gin.Default()
|
r := gin.Default()
|
||||||
|
|
||||||
// Basic route for health check
|
// Basic route for health check
|
||||||
r.GET("/", helloHandler)
|
r.GET("/api", helloHandler)
|
||||||
|
|
||||||
// Setup API routes
|
// Setup API routes
|
||||||
routes.SetupRouter(r)
|
routes.SetupRouter(r)
|
||||||
|
4452
backend/docs/docs.go
4452
backend/docs/docs.go
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@ -26,7 +26,7 @@ func NewActivityHandler() *ActivityHandler {
|
|||||||
// @Accept json
|
// @Accept json
|
||||||
// @Produce json
|
// @Produce json
|
||||||
// @Security BearerAuth
|
// @Security BearerAuth
|
||||||
// @Success 200 {object} utils.Response{data=[]utils.ActivityResponse}
|
// @Success 200 {object} utils.Response{data=[]dto.ActivityDto}
|
||||||
// @Failure 401 {object} utils.Response{error=utils.ErrorInfo}
|
// @Failure 401 {object} utils.Response{error=utils.ErrorInfo}
|
||||||
// @Failure 500 {object} utils.Response{error=utils.ErrorInfo}
|
// @Failure 500 {object} utils.Response{error=utils.ErrorInfo}
|
||||||
// @Router /activities [get]
|
// @Router /activities [get]
|
||||||
@ -56,7 +56,7 @@ func (h *ActivityHandler) GetActivities(c *gin.Context) {
|
|||||||
// @Produce json
|
// @Produce json
|
||||||
// @Security BearerAuth
|
// @Security BearerAuth
|
||||||
// @Param id path string true "Activity ID"
|
// @Param id path string true "Activity ID"
|
||||||
// @Success 200 {object} utils.Response{data=utils.ActivityResponse}
|
// @Success 200 {object} utils.Response{data=dto.ActivityDto}
|
||||||
// @Failure 400 {object} utils.Response{error=utils.ErrorInfo}
|
// @Failure 400 {object} utils.Response{error=utils.ErrorInfo}
|
||||||
// @Failure 401 {object} utils.Response{error=utils.ErrorInfo}
|
// @Failure 401 {object} utils.Response{error=utils.ErrorInfo}
|
||||||
// @Failure 404 {object} utils.Response{error=utils.ErrorInfo}
|
// @Failure 404 {object} utils.Response{error=utils.ErrorInfo}
|
||||||
|
84
docu/swagger_documentation.md
Normal file
84
docu/swagger_documentation.md
Normal file
@ -0,0 +1,84 @@
|
|||||||
|
# Swagger Documentation
|
||||||
|
|
||||||
|
This document explains how to access and update the Swagger documentation for the Time Tracker API.
|
||||||
|
|
||||||
|
## Accessing Swagger UI
|
||||||
|
|
||||||
|
After starting the backend server, access the Swagger UI at:
|
||||||
|
```
|
||||||
|
http://localhost:8080/swagger/index.html
|
||||||
|
```
|
||||||
|
|
||||||
|
This interactive interface allows you to:
|
||||||
|
- Browse all available API endpoints
|
||||||
|
- See request parameters and response formats
|
||||||
|
- Test API calls directly from the browser
|
||||||
|
|
||||||
|
## Updating Swagger Documentation
|
||||||
|
|
||||||
|
To update the Swagger documentation for the Time Tracker API, follow these steps:
|
||||||
|
|
||||||
|
1. **Add or update Swagger annotations in your code**
|
||||||
|
- Annotations should be added as comments above handler functions
|
||||||
|
- Use the correct types in annotations (e.g., `dto.ActivityDto` instead of `utils.ActivityResponse`)
|
||||||
|
- Make sure all parameters, responses, and types are properly documented
|
||||||
|
|
||||||
|
2. **Run the Swagger generation command**
|
||||||
|
```bash
|
||||||
|
cd backend && swag init -g cmd/api/main.go --output docs
|
||||||
|
```
|
||||||
|
|
||||||
|
This command:
|
||||||
|
- Uses `swag` CLI tool to parse your code
|
||||||
|
- Looks for the main entry point in `cmd/api/main.go`
|
||||||
|
- Outputs the generated files to the `docs` directory
|
||||||
|
|
||||||
|
3. **Verify the generated files**
|
||||||
|
The command will generate or update three files:
|
||||||
|
- `docs/docs.go` - Go code for the Swagger documentation
|
||||||
|
- `docs/swagger.json` - JSON representation of the API
|
||||||
|
- `docs/swagger.yaml` - YAML representation of the API
|
||||||
|
|
||||||
|
4. **Common issues and solutions**
|
||||||
|
- If you encounter "cannot find type definition" errors, check that you're using the correct type names in your annotations
|
||||||
|
- If endpoints are missing, ensure they have proper Swagger annotations
|
||||||
|
- If you change the base path or other global settings, update them in the `main.go` file annotations
|
||||||
|
|
||||||
|
## Swagger Annotation Examples
|
||||||
|
|
||||||
|
### Main API Information
|
||||||
|
|
||||||
|
In `main.go`:
|
||||||
|
```go
|
||||||
|
// @title Time Tracker API
|
||||||
|
// @version 1.0
|
||||||
|
// @description This is a simple time tracker API.
|
||||||
|
// @host localhost:8080
|
||||||
|
// @BasePath /api
|
||||||
|
// @securityDefinitions.apikey BearerAuth
|
||||||
|
// @in header
|
||||||
|
// @name Authorization
|
||||||
|
```
|
||||||
|
|
||||||
|
### Endpoint Documentation
|
||||||
|
|
||||||
|
Example from a handler function:
|
||||||
|
```go
|
||||||
|
// GetActivities handles GET /activities
|
||||||
|
//
|
||||||
|
// @Summary Get all activities
|
||||||
|
// @Description Get a list of all activities
|
||||||
|
// @Tags activities
|
||||||
|
// @Accept json
|
||||||
|
// @Produce json
|
||||||
|
// @Security BearerAuth
|
||||||
|
// @Success 200 {object} utils.Response{data=[]dto.ActivityDto}
|
||||||
|
// @Failure 401 {object} utils.Response{error=utils.ErrorInfo}
|
||||||
|
// @Failure 500 {object} utils.Response{error=utils.ErrorInfo}
|
||||||
|
// @Router /activities [get]
|
||||||
|
func (h *ActivityHandler) GetActivities(c *gin.Context) {
|
||||||
|
// Function implementation
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
Remember that the Swagger documentation is generated from the annotations in your code, so keeping these annotations up-to-date is essential for accurate API documentation.
|
Loading…
x
Reference in New Issue
Block a user