This application is a demonstration of a backend-file-management system using Django REST framework
- Installation
- API Overview
- Testing
- Clone the repository to local machine
- Create and activate a new venv
- Install requirements
pip install -r requirements.txt - Migrate migrations
python src/manage.py migrate - Run server
python src/manage.py runserver
Visit http://localhost:8000/api/ in your browser
GET /api/
HTTP 200 OK
Allow: GET, HEAD, OPTIONS
Content-Type: application/json
Vary: Accept {
"song": "http://localhost:8000/api/song/",
"podcast": "http://localhost:8000/api/podcast/",
"audiobook": "http://localhost:8000/api/audiobook/"
}
GET /api/<audioFileType>/
Response: List of all files in JSON
HTTP 200 OK
Allow: GET, POST, HEAD, OPTIONS
Content-Type: application/json
Vary: Accept
[
{
"field": "value",
"field": "value",
...
},
{
"field": "value",
"field": "value",
...
}
]
GET /api/<audioFileType>/<audioFileID>/
Reponse:
HTTP 200 OK
Allow: GET, PUT, PATCH, DELETE, HEAD, OPTIONS
Content-Type: application/json
Vary: Accept
{
"field": "value",
"field": "value",
...
}
POST /api/<audioFileType>/
{
"field": "value",
"field": "value",
...
}
Reponse:
HTTP 201 Created
Allow: GET, POST, HEAD, OPTIONS
Content-Type: application/json
Vary: Accept
{
"field": "value",
"field": "value",
...
}
DELETE /api/<audioFileType>/<audioFileID>/
HTTP 204 No Content
Allow: GET, PUT, PATCH, DELETE, HEAD, OPTIONS
Content-Type: application/json
Vary: Accept
PATCH /api/<audioFileType>/<audioFileID>/
{
"field": "new value",
}
HTTP 200 OK
Allow: GET, PUT, PATCH, DELETE, HEAD, OPTIONS
Content-Type: application/json
Vary: Accept
{
"field": "new value",
"field": "value",
...
}
To run all tests run command python src/manage.py test in project directory