Resources¶
View Media¶
Endpoint: GET /resources/media/{media_id}
Description: View a single media file (photo or video) from a community post.
Response: 200 OK
{
"id": "123e4567-e89b-12d3-a456-426614174000",
"resource_id": "987fcdeb-51a2-43f7-b123-456789abcdef",
"url": "https://example.com/media/video.mp4",
"media_type": "video"
}
Search Resources¶
Endpoint: GET /resources/search
Description: Search resources by title substring (case-insensitive).
Query Parameters:
- title (string): Search title
- page (integer): Page number
- limit (integer): Number of items per page
Response: 200 OK
{
"status": "success",
"message": "Resources retrieved successfully",
"data": [
{
"id": "123e4567-e89b-12d3-a456-426614174000",
"title": "Healthy Pregnancy Tips",
"content": "Here are some tips for a healthy pregnancy...",
"created_at": "2025-11-18T21:30:45.123456",
"category": {
"id": "category_uuid",
"name": "Pregnancy"
},
"media": []
}
],
"total": 1,
"page": 1,
"limit": 10,
"total_pages": 1
}
Bookmark a Resource¶
Endpoint: POST /resources/bookmarks
Description: Create a bookmark for a resource for a user.
Request Body:
Response: 201 Created
{
"id": "bookmark_uuid",
"user_id": "user_uuid",
"resource_id": "123e4567-e89b-12d3-a456-426614174000"
}
Create a Category¶
Endpoint: POST /resources/categories
Description: Create a new category for resources.
Request Body:
Response: 201 Created
Get All Categories¶
Endpoint: GET /resources/categories
Description: Get all resource categories.
Response: 200 OK
{
"categories": [
{
"id": "category_uuid_1",
"name": "Pregnancy"
},
{
"id": "category_uuid_2",
"name": "Postpartum"
}
]
}
Get Category by ID¶
Endpoint: GET /resources/categories/{category_id}
Description: Get a single resource category by ID.
Response: 200 OK
Update Category¶
Endpoint: PATCH /resources/categories/{category_id}
Description: Update a resource category by ID.
Request Body:
Response: 200 OK
Delete Category¶
Endpoint: DELETE /resources/categories/{category_id}
Description: Delete a resource category by ID.
Response: 200 OK
Get Resources¶
Endpoint: GET /resources/
Description: Get resources with optional Search and Filtering.
Query Parameters:
- q (string): Search term (Title, Content, or Category)
- category_id (UUID): Filter by Category ID
- page (integer): Page number
- limit (integer): Items per page
Response: 200 OK
{
"status": "success",
"message": "Resources retrieved successfully",
"data": [
{
"id": "123e4567-e89b-12d3-a456-426614174000",
"title": "Healthy Pregnancy Tips",
"content": "Here are some tips for a healthy pregnancy...",
"created_at": "2025-11-18T21:30:45.123456",
"category": {
"id": "category_uuid",
"name": "Pregnancy"
},
"media": []
}
],
"total": 1,
"page": 1,
"limit": 10,
"total_pages": 1
}
Create a Resource¶
Endpoint: POST /resources/
Description: Create a new resource.
Request Body:
{
"title": "Healthy Pregnancy Tips",
"content": "Here are some tips for a healthy pregnancy...",
"category_id": "category_uuid"
}
Response: 201 Created
{
"id": "123e4567-e89b-12d3-a456-426614174000",
"title": "Healthy Pregnancy Tips",
"category_id": "category_uuid",
"created_at": "2025-11-18T21:30:45.123456"
}
Get Resource by ID¶
Endpoint: GET /resources/{resource_id}
Description: Get a single resource by ID.
Response: 200 OK
{
"id": "123e4567-e89b-12d3-a456-426614174000",
"title": "Healthy Pregnancy Tips",
"content": "Here are some tips for a healthy pregnancy...",
"category_id": "category_uuid",
"created_at": "2025-11-18T21:30:45.123456",
"updated_at": "2025-11-18T21:30:45.123456"
}
Update Resource¶
Endpoint: PATCH /resources/{resource_id}
Description: Update a resource by ID.
Request Body:
Response: 200 OK
{
"id": "123e4567-e89b-12d3-a456-426614174000",
"title": "Updated Healthy Pregnancy Tips",
"category_id": "category_uuid",
"created_at": "2025-11-18T21:30:45.123456",
"updated_at": "2025-11-18T21:31:45.123456"
}
Delete Resource¶
Endpoint: DELETE /resources/{resource_id}
Description: Delete a resource by ID.
Response: 200 OK