API ini dibuat menggunakan Django & Django REST Framework untuk mengelola pengguna, media sosial, proyek, komentar, dan fitur interaksi lainnya. Dokumentasi ini mengikuti struktur collection Postman yang telah disiapkan.
{{base_url}} = http://127.0.0.1:8000/api
- Endpoint:
POST {{base_url}}/auth/register/ - Headers:
Content-Type: application/json - Body:
{
"username": "testuser",
"password": "testpassword",
"email": "test@example.com"
}- Response:
{
"status": true,
"message": "User registered successfully",
"data": {
"id": 1,
"username": "testuser",
"email": "test@example.com"
}
}- Endpoint:
POST {{base_url}}/auth/login/ - Body:
{
"username": "testuser",
"password": "testpassword"
}- Response:
{
"status": true,
"message": "Login successful",
"data": {
"access": "<JWT_ACCESS_TOKEN>",
"refresh": "<JWT_REFRESH_TOKEN>"
}
}- Endpoint:
POST {{base_url}}/auth/token/refresh/ - Body:
{
"refresh": "{{refresh_token}}"
}- Response:
{
"status": true,
"message": "Token refreshed",
"data": {
"access": "<NEW_ACCESS_TOKEN>"
}
}- Endpoint:
POST {{base_url}}/auth/logout/ - Headers:
Authorization: Bearer {{access_token}} - Body:
{
"refresh": "{{refresh_token}}"
}- Response:
{
"status": true,
"message": "Successfully logged out"
}- Endpoint:
GET {{base_url}}/users/ - Headers:
Authorization: Bearer {{access_token}} - Response:
{
"status": true,
"message": "User profile retrieved",
"data": {
"id": 1,
"username": "testuser",
"email": "test@example.com",
"position": "CEO",
"address": "Jl. Veteran No. 140"
}
}- Endpoint:
PUT {{base_url}}/users/ - Headers:
Authorization: Bearer {{access_token}} - Body:
{
"username": "updateduser",
"email": "userupdate@gmail.com",
"position": "Designer",
"address": "Jl. Baru"
}- Response:
{
"status": true,
"message": "User profile updated successfully",
"data": {
"username": "updateduser",
"email": "userupdate@gmail.com",
"position": "Designer",
"address": "Jl. Baru"
}
}- Endpoint:
DELETE {{base_url}}/users/ - Headers:
Authorization: Bearer {{access_token}} - Response:
{
"status": true,
"message": "User deleted successfully"
}- Endpoint:
GET {{base_url}}/users/social-media/ - Headers:
Authorization: Bearer {{access_token}} - Response:
{
"status": true,
"message": "Social media retrieved",
"data": [
{
"id": 1,
"name": "Instagram",
"url": "https://instagram.com/testuser"
}
]
}- Endpoint:
POST {{base_url}}/users/social-media/ - Body:
{
"name": "Instagram",
"url": "https://instagram.com/testuser"
}- Response:
{
"status": true,
"message": "Social media created",
"data": {
"id": 1,
"name": "Instagram",
"url": "https://instagram.com/testuser"
}
}- Endpoint:
PUT {{base_url}}/users/social-media/{id}/ - Body:
{
"name": "Updated IG",
"url": "https://instagram.com/updateduser"
}- Endpoint:
DELETE {{base_url}}/users/social-media/{id}/
-
Endpoint:
POST {{base_url}}/projects/ -
Headers:
Content-Type: multipart/form-data -
Body (Form Data):
title: "My Project"description: "Project description"category: "Design"image_url: (file)
-
Response:
{
"status": true,
"message": "Project created successfully",
"data": {
"id": 1,
"title": "My Project",
"description": "Project description",
"category": "Design",
"image_url": "http://..."
}
}- Endpoint:
PUT {{base_url}}/projects/{id}/ - Body (Form Data): sama seperti create
- Response:
{
"status": true,
"message": "Project updated successfully",
"data": {
"id": 1,
"title": "Updated Project",
"description": "Updated description",
"category": "Updated Category",
"image_url": "http://..."
}
}- Endpoint:
DELETE {{base_url}}/projects/{id}/ - Response:
{
"status": true,
"message": "Project deleted successfully"
}- Endpoint:
POST {{base_url}}/projects/{id}/likes/
- Endpoint:
GET {{base_url}}/projects/{id}/likes/ - Response:
{
"status": true,
"message": "Likes retrieved",
"data": {
"likes_count": 5,
"liked_by": [
{
"id": 1,
"username": "user"
}
]
}
}- Endpoint:
GET {{base_url}}/projects/{id}/comments/
- Endpoint:
POST {{base_url}}/projects/{id}/comments/ - Body:
{
"content": "Great project!"
}- Response:
{
"status": true,
"message": "Comment created",
"data": {
"id": 1,
"content": "Great project!",
"user": "testuser"
}
}- Endpoint:
PUT {{base_url}}/comments/{id}/ - Body:
{
"content": "Updated content"
}- Endpoint:
DELETE {{base_url}}/comments/{id}/
| Field | Type |
|---|---|
| username | CharField |
| EmailField (unique) | |
| position | CharField |
| address | TextField |
| image_url | ImageField |
| created_at | DateTime |
| edited_at | DateTime |
| Field | Type |
|---|---|
| id_user | ForeignKey (User) |
| name | CharField |
| url | CharField |
| created_at | DateTime |
| edited_at | DateTime |
| Field | Type |
|---|---|
| id_user | ForeignKey (User) |
| title | CharField |
| description | TextField |
| category | CharField |
| file_url | CharField (optional) |
| image_url | ImageField |
| views | Integer |
| created_at | DateTime |
| edited_at | DateTime |
| Field | Type |
|---|---|
| id_user | ForeignKey (User) |
| id_project | ForeignKey (Project) |
| message | TextField |
| created_at | DateTime |
| edited_at | DateTime |
| Field | Type |
|---|---|
| id_user | ForeignKey (User) |
| id_project | ForeignKey (Project) |
git clone https://github.com/dikrifzn/pameraja-backend.git
cd pameraja-backendpip install pipenv
pipenv install
pipenv shellpython manage.py migrate
python manage.py runserver- Django
- Django REST Framework
- JWT Authentication
- PostgreSQL / MySQL (configurable)
๐ฎ For more information, check out the Postman Collection
created by Dikri Fauzan Amrulloh