[ADD] HORILLA_API: Add swagger
This commit is contained in:
79
horilla_api/README_API_DOCS.md
Normal file
79
horilla_api/README_API_DOCS.md
Normal file
@@ -0,0 +1,79 @@
|
||||
# Horilla API Documentation
|
||||
|
||||
This document provides information on how to use and maintain the API documentation for Horilla HRMS.
|
||||
|
||||
## Accessing API Documentation
|
||||
|
||||
The API documentation is available at the following URLs:
|
||||
|
||||
- **Swagger UI**: `/api/swagger/` - Interactive documentation with testing capabilities
|
||||
- **ReDoc**: `/api/redoc/` - Clean, responsive documentation for easier reading
|
||||
- **JSON Schema**: `/api/swagger.json` - Raw schema for integration with other tools
|
||||
|
||||
## Features
|
||||
|
||||
- **Interactive Documentation**: Test API endpoints directly from the browser
|
||||
- **Module Organization**: Endpoints are grouped by module (employee, attendance, etc.)
|
||||
- **Authentication Support**: Bearer (JWT) only. Basic authentication is disabled.
|
||||
- **Request/Response Examples**: Clear examples of data formats
|
||||
- **Versioning**: API versions are clearly indicated
|
||||
|
||||
## For Developers: Adding Documentation to New Endpoints
|
||||
|
||||
### Using the `document_api` Decorator
|
||||
|
||||
```python
|
||||
from horilla_api.docs import document_api
|
||||
|
||||
class MyAPIView(APIView):
|
||||
@document_api(
|
||||
operation_description="Description of what this endpoint does",
|
||||
request_body=MyRequestSerializer,
|
||||
responses={
|
||||
200: MyResponseSerializer,
|
||||
400: "Bad request error description"
|
||||
},
|
||||
tags=['Module Name']
|
||||
)
|
||||
def get(self, request):
|
||||
# Your view logic here
|
||||
pass
|
||||
```
|
||||
|
||||
### Common Parameters
|
||||
|
||||
For paginated list views:
|
||||
|
||||
```python
|
||||
@document_api(
|
||||
operation_description="List all items with pagination",
|
||||
responses={200: MySerializer(many=True)},
|
||||
query_params='paginated'
|
||||
)
|
||||
```
|
||||
|
||||
## Maintaining Documentation
|
||||
|
||||
- Documentation automatically updates when API endpoints change
|
||||
- Security schemes (Bearer/JWT) are configured in `rest_conf.py`
|
||||
- Basic authentication has been removed across all interfaces`
|
||||
- Module tags are defined in `horilla_api/docs.py`
|
||||
|
||||
## Testing Documentation
|
||||
|
||||
1. Start the development server
|
||||
2. Navigate to `/api/swagger/` or `/api/redoc/`
|
||||
3. Verify all endpoints are properly documented
|
||||
4. Test authentication flows
|
||||
5. Check that all modules are properly organized
|
||||
|
||||
## Troubleshooting
|
||||
|
||||
If endpoints are not appearing in documentation:
|
||||
- Ensure the URL is included in the `patterns` list in `horilla_api/urls.py`
|
||||
- Check that the view is using proper decorators
|
||||
- Verify the serializer is correctly defined
|
||||
|
||||
If you see a Basic authorization option in Swagger:
|
||||
- Clear your browser cache and refresh `/api/swagger/`
|
||||
- Confirm `SWAGGER_SETTINGS` only contains the `Bearer` scheme
|
||||
Reference in New Issue
Block a user