{ "openapi": "3.0.0", "info": { "title": "Parsa Aghayi Portfolio API", "description": "REST API for Parsa Aghayi's personal portfolio and blog", "version": "1.0.0" }, "servers": [ { "url": "http://localhost:8000/api", "description": "Development server" }, { "url": "https://backend.parsaaghayi.ir/api", "description": "Production server" } ], "components": { "schemas": { "Skill": { "properties": { "id": { "type": "integer" }, "title": { "type": "string" }, "description": { "type": "string" }, "image": { "type": "string" }, "link": { "type": "string", "nullable": true }, "percentage": { "type": "integer" } }, "type": "object" }, "AboutMe": { "properties": { "id": { "type": "integer" }, "title": { "type": "string" }, "description": { "type": "string" }, "image": { "type": "string" }, "skills": { "type": "array", "items": { "$ref": "#/components/schemas/Skill" } } }, "type": "object" }, "Service": { "properties": { "id": { "type": "integer" }, "imageSrc": { "type": "string" }, "altText": { "type": "string" }, "title": { "type": "string" }, "description": { "type": "string" }, "created_at": { "type": "string", "format": "datetime" }, "updated_at": { "type": "string", "format": "datetime" } }, "type": "object" }, "Project": { "properties": { "id": { "type": "integer" }, "title": { "type": "string" }, "category": { "type": "string", "nullable": true }, "images": { "type": "array", "items": { "type": "object" } }, "created_at": { "type": "string", "format": "datetime" }, "updated_at": { "type": "string", "format": "datetime" } }, "type": "object" }, "Category": { "properties": { "id": { "type": "integer" }, "title": { "type": "string" }, "image": { "type": "string" } }, "type": "object" }, "Post": { "properties": { "id": { "type": "integer" }, "title": { "type": "string" }, "body": { "type": "string" }, "excerpt": { "type": "string" }, "slug": { "type": "string" }, "featured_image": { "type": "string", "nullable": true }, "author": { "type": "object" }, "category": { "type": "object" }, "tags": { "type": "array", "items": { "type": "object" } }, "published_at": { "type": "string", "format": "datetime", "nullable": true } }, "type": "object" } } } }