🚀 Django Blog API

Production-ready RESTful API for modern blog applications with advanced features

API is Running

📚 API Endpoints

GET /api/v1/posts/
Get all published blog posts (paginated, filterable, searchable)
GET /api/v1/posts/{slug}/
Get specific blog post by slug with related posts
POST /api/v1/posts/
Create new blog post (requires authentication)
PUT /api/v1/posts/{slug}/
Update existing blog post (requires authentication)
DELETE /api/v1/posts/{slug}/
Delete blog post (requires authentication)
GET /api/v1/categories/
Get all categories with post counts
GET /api/v1/tags/
Get all tags with post counts
GET /api/v1/authors/
Get all authors with their profiles
GET /api/v1/search/?q={query}
Full-text search across posts
POST /api/v1/comments/
Submit comment for moderation

✨ Key Features

🔒 Secure

JWT authentication, CSRF protection, input validation

⚡ Fast

Redis caching, optimized queries, CDN-ready

🎯 SEO Ready

Auto-generated metadata, sitemap, RSS feed

📊 Analytics

View tracking, reading time, engagement metrics

🖼️ Media

Supabase storage, image optimization, CKEditor 5

🔔 Async Tasks

Celery integration, email notifications, webhooks

🚀 Quick Start

Example API request to fetch all posts:

curl -X GET "https://backend.zaryableather.com/api/v1/posts/" \ -H "Accept: application/json"

Example response:

{ "count": 42, "next": "https://backend.zaryableather.com/api/v1/posts/?page=2", "previous": null, "results": [ { "id": 1, "title": "Getting Started with Django", "slug": "getting-started-django", "summary": "Learn Django basics...", "author": { "name": "John Doe", "slug": "john-doe" }, "categories": [...], "published_at": "2024-01-15T10:30:00Z" } ] }