80 lines
1.5 KiB
Markdown
80 lines
1.5 KiB
Markdown
# Home Automation API
|
|
|
|
FastAPI-based REST API for the home automation system.
|
|
|
|
## Features
|
|
|
|
- **Health Check**: Monitor API availability
|
|
- **Capabilities Specification**: Discover supported capabilities and versions
|
|
- **CORS Support**: Configured for local frontend development
|
|
- **Auto-generated Documentation**: Interactive API docs via Swagger UI
|
|
|
|
## Running the API
|
|
|
|
### Development Mode (with auto-reload)
|
|
|
|
```bash
|
|
poetry run uvicorn apps.api.main:app --reload
|
|
```
|
|
|
|
### Production Mode
|
|
|
|
```bash
|
|
poetry run uvicorn apps.api.main:app --host 0.0.0.0 --port 8000
|
|
```
|
|
|
|
### Using Python directly
|
|
|
|
```bash
|
|
poetry run python -m apps.api.main
|
|
```
|
|
|
|
## API Endpoints
|
|
|
|
### `GET /health`
|
|
|
|
Health check endpoint.
|
|
|
|
**Response:**
|
|
```json
|
|
{
|
|
"status": "ok"
|
|
}
|
|
```
|
|
|
|
### `GET /spec`
|
|
|
|
Returns supported capabilities and their versions.
|
|
|
|
**Response:**
|
|
```json
|
|
{
|
|
"capabilities": {
|
|
"light": "light@1.2.0"
|
|
}
|
|
}
|
|
```
|
|
|
|
## Interactive Documentation
|
|
|
|
Once the server is running, visit:
|
|
- **Swagger UI**: http://localhost:8000/docs
|
|
- **ReDoc**: http://localhost:8000/redoc
|
|
- **OpenAPI Schema**: http://localhost:8000/openapi.json
|
|
|
|
## CORS Configuration
|
|
|
|
The API is configured to accept requests from the following origins:
|
|
- http://localhost:3000
|
|
- http://localhost:5173
|
|
- http://localhost:8080
|
|
- http://127.0.0.1:3000
|
|
- http://127.0.0.1:5173
|
|
- http://127.0.0.1:8080
|
|
|
|
## Dependencies
|
|
|
|
- **FastAPI**: Modern, fast web framework
|
|
- **Uvicorn**: ASGI server
|
|
- **Pydantic**: Data validation using Python type hints
|