Initial implementation of TuneRipper API backend
- Add Health, Video, and Download controllers with endpoints for health checks, video details, processing, status, results, and simulated downloads - Implement IVideoService for YouTube URL validation and mock video info - Add API models for responses and job status tracking - Configure DI, CORS (BlazorPolicy), OpenAPI, and root metadata endpoint in Program.cs - Add README with usage, troubleshooting, and development notes - Minor project file cleanup and encoding fix
This commit is contained in:
@@ -0,0 +1,84 @@
|
||||
# TuneRipper API
|
||||
|
||||
## Quick Start
|
||||
|
||||
### Starting the API
|
||||
|
||||
**Option 1: Using the start script (Windows)**
|
||||
```cmd
|
||||
cd TuneRipper.Api
|
||||
start-api.bat
|
||||
```
|
||||
|
||||
**Option 2: Using the start script (Linux/Mac)**
|
||||
```bash
|
||||
cd TuneRipper.Api
|
||||
chmod +x start-api.sh
|
||||
./start-api.sh
|
||||
```
|
||||
|
||||
**Option 3: Manual start**
|
||||
```cmd
|
||||
cd TuneRipper.Api
|
||||
dotnet run
|
||||
```
|
||||
|
||||
### API Endpoints
|
||||
|
||||
Once running, the API will be available at:
|
||||
- **HTTPS**: https://localhost:7160
|
||||
- **HTTP**: http://localhost:5112
|
||||
|
||||
### Testing the API
|
||||
|
||||
1. **Start the API** using one of the methods above
|
||||
2. **Open the HTTP test file**: `TuneRipper.Api/api-tests.http`
|
||||
3. **Run the connectivity tests first** to verify the API is responding
|
||||
4. **Use the main API tests** once connectivity is confirmed
|
||||
|
||||
### Troubleshooting
|
||||
|
||||
#### "This localhost page can't be found" errors:
|
||||
|
||||
1. **Check if API is running**:
|
||||
- Look for console output showing "Now listening on: https://localhost:7160"
|
||||
- If not running, start it using the methods above
|
||||
|
||||
2. **Try HTTP instead of HTTPS**:
|
||||
- Use `http://localhost:5112` instead of `https://localhost:7160`
|
||||
- Some development environments have HTTPS certificate issues
|
||||
|
||||
3. **Trust development certificates** (for HTTPS):
|
||||
```cmd
|
||||
dotnet dev-certs https --trust
|
||||
```
|
||||
|
||||
4. **Check port availability**:
|
||||
- Make sure ports 7160 and 5112 aren't used by other applications
|
||||
- You can change ports in `Properties/launchSettings.json`
|
||||
|
||||
#### HTTP test file variables not working:
|
||||
|
||||
1. **Copy job IDs manually**:
|
||||
- Run a POST request to start processing
|
||||
- Copy the `fileName` value from the response
|
||||
- Use it in the manual test sections
|
||||
|
||||
2. **Use the troubleshooting section**:
|
||||
- Start with connectivity tests
|
||||
- Use manual GUID replacements if variables fail
|
||||
|
||||
### API Documentation
|
||||
|
||||
When the API is running, you can access:
|
||||
- **Root endpoint**: https://localhost:7160/ (lists available endpoints)
|
||||
- **OpenAPI spec**: https://localhost:7160/openapi/v1.json
|
||||
- **Health check**: https://localhost:7160/api/health
|
||||
|
||||
### Development
|
||||
|
||||
The API includes:
|
||||
- Automatic reload on code changes (when using `dotnet run`)
|
||||
- Detailed logging in the console
|
||||
- CORS enabled for Blazor WebAssembly client
|
||||
- OpenAPI/Swagger support for API documentation
|
||||
Reference in New Issue
Block a user