# 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