.
نسخه فارسی (کلیک کنید)
این پروژه یک API مبتنی بر Laravel برای پژواک است، یک پلتفرم رسانه اجتماعی که به کاربران امکان میدهد پست ایجاد کنند، نظر دهند، لایک کنند و کاربران دیگر را دنبال کنند.
- PHP >= 8.2
- Composer
- MySQL (یا هر پایگاه دادهای که Laravel پشتیبانی میکند)
-
کلون کردن مخزن:
git clone https://github.com/alimanian/pezhvaak.git
-
نصب وابستگیها:
composer install
-
کپی کردن
.env.example
به.env
و پیکربندی متغیرهای محیطی:cp .env.example .env
-
تنظیم اطلاعات دیتابیس در فایل
.env
: اطلاعات ورود به دیتابیس و نام دیتابیس را در فایل.env
تنظیم کنید. مثال:DB_CONNECTION=mysql DB_HOST=127.0.0.1 DB_PORT=3306 DB_DATABASE=pezhvaak DB_USERNAME=root DB_PASSWORD=
-
تولید کلید برنامه:
php artisan key:generate
-
اجرای مایگریشنها و سیدرها:
php artisan migrate --seed
-
شروع سرور توسعه:
php artisan serve
- URL پایه:
http://pezhvaak.test/api
- احراز هویت: توکن Bearer (برای اکثر نقاط پایانی مورد نیاز است)
نقطه پایانی | متد | پارامترها | توضیحات |
---|---|---|---|
/register |
POST | name , email , password |
ایجاد حساب کاربری جدید |
/login |
POST | email , password |
احراز هویت و دریافت توکن API |
نقطه پایانی | متد | نیاز به احراز هویت | پارامترها | توضیحات |
---|---|---|---|---|
/v1/users/ |
GET | خیر | - | دریافت همه کاربران |
/v1/users/{user_id}/posts |
GET | خیر | user_id (مسیر) |
دریافت پستهای کاربر |
/v1/users/{user_id}/comments |
GET | خیر | user_id (مسیر) |
دریافت نظرات کاربر |
/v1/users/{user_id}/likes |
GET | خیر | user_id (مسیر) |
دریافت لایکهای کاربر |
/v1/users/{user_id}/followers |
GET | خیر | user_id (مسیر) |
دریافت دنبالکنندگان کاربر |
/v1/users/{user_id}/following |
GET | خیر | user_id (مسیر) |
دریافت کاربرانی که کاربر دنبال میکند |
/v1/users/{user_id}/follow |
POST | بله | user_id (مسیر) |
دنبال کردن کاربر |
/v1/users/{user_id}/unfollow |
DELETE | بله | user_id (مسیر) |
لغو دنبال کردن کاربر |
نقطه پایانی | متد | نیاز به احراز هویت | پارامترها | توضیحات |
---|---|---|---|---|
/v1/posts |
GET | خیر | - | دریافت همه پستها |
/v1/posts/{post_id} |
GET | خیر | post_id (مسیر) |
دریافت پست با شناسه |
/v1/posts |
POST | بله | content , attachments[] (اختیاری) |
ایجاد پست |
/v1/posts/{post_id} |
PUT | بله | post_id (مسیر), content |
بهروزرسانی پست |
/v1/posts/{post_id} |
DELETE | بله | post_id (مسیر) |
حذف پست |
نقطه پایانی | متد | نیاز به احراز هویت | پارامترها | توضیحات |
---|---|---|---|---|
/v1/comments |
POST | بله | content , post_id |
ایجاد نظر |
/v1/comments/{comment_id} |
DELETE | بله | comment_id (مسیر) |
حذف نظر |
نقطه پایانی | متد | نیاز به احراز هویت | پارامترها | توضیحات |
---|---|---|---|---|
/v1/likes |
POST | بله | post_id |
ایجاد لایک |
/v1/likes/{like_id} |
DELETE | بله | like_id (مسیر) |
حذف لایک |
-
مدیریت خطا: تمام نقاط پایانی پاسخهای JSON را برمیگردانند. در صورت بروز خطا، پاسخ شامل پیام خطا و کد وضعیت HTTP مناسب خواهد بود.
-
محدودیت نرخ: اطلاعات مربوط به محدودیت نرخ در مشخصات فعلی API ارائه نشده است. لطفاً برای جزئیات سیاستهای محدودیت نرخ با ارائهدهنده API تماس بگیرید.
-
هدرهای درخواست:
- برای درخواستهای احراز هویت شده، توکن Bearer را در هدر Authorization قرار دهید.
- برای تمام فراخوانیهای API،
Accept: application/json
را در هدرهای درخواست تنظیم کنید.
-
فرمت پاسخ: تمام پاسخهای موفق در قالب JSON خواهند بود.
-
صفحهبندی: در صورت پیادهسازی، جزئیات مربوط به صفحهبندی (مانند اندازه صفحه، لینکهای صفحه بعدی/قبلی) باید در پاسخ برای نقاط پایانی که چندین مورد را برمیگردانند، گنجانده شود.
-
نسخهبندی: نسخه فعلی API v1 است، همانطور که از مسیرهای نقطه پایانی مشخص است.
-
پارامترهای مسیر: پارامترهایی که با (مسیر) مشخص شدهاند، بخشی از مسیر URL هستند و باید هنگام ارسال درخواستها با مقادیر واقعی جایگزین شوند.
توجه: برای اطلاعات دقیقتر در مورد نمونههای درخواست/پاسخ، کدهای خطای خاص و راهنمای استفاده، لطفاً به مستندات کامل API مراجعه کنید یا با ارائهدهنده API تماس بگیرید.
برای سهولت در تست و استفاده از API، یک فایل کالکشن Postman با نام pezhvaak.postman_collection.json
در دایرکتوری اصلی پروژه قرار داده شده است. شما میتوانید این فایل را در Postman وارد کرده و به راحتی API را تست کنید.
- فایل
pezhvaak.postman_collection.json
را در Postman وارد کنید. - در Postman، به بخش
Pezhvaak
بروید و سپس قسمتVariables
را باز کنید. - مقدار
base_url
را در هر دو فیلدINITIAL VALUE
وCURRENT VALUE
تنظیم کنید (معمولاًhttp://localhost:8000/api
). - یک درخواست
/login
ارسال کنید تا توکن دریافت کنید. - توکن دریافت شده را در بخش
Variables
درPezhvaak
برای متغیرtoken
در هر دو فیلدINITIAL VALUE
وCURRENT VALUE
قرار دهید. - اکنون میتوانید از APIهای مختلف استفاده کنید.
لطفاً قبل از مشارکت در این پروژه با ما تماس بگیرید. شما میتوانید با ایجاد یک issue یا ارسال یک pull request مشارکت کنید.
این پروژه تحت مجوز [نام مجوز] منتشر شده است. برای جزئیات بیشتر، فایل LICENSE را مشاهده کنید.
English Version (Click to collapse)
This project is a Laravel-based API for Pezhvaak, a social media platform allowing users to create posts, comment, like, and follow other users.
- PHP >= 8.2
- Composer
- MySQL (or any database supported by Laravel)
-
Clone the repository:
git clone https://github.com/alimanian/pezhvaak.git
-
Install dependencies:
composer install
-
Copy
.env.example
to.env
and configure environment variables:cp .env.example .env
-
Set up database information in the
.env
file: Configure your database credentials and database name in the.env
file. For example:DB_CONNECTION=mysql DB_HOST=127.0.0.1 DB_PORT=3306 DB_DATABASE=pezhvaak DB_USERNAME=root DB_PASSWORD=
-
Generate application key:
php artisan key:generate
-
Run migrations and seeders:
php artisan migrate --seed
-
Start the development server:
php artisan serve
- Base URL:
http://pezhvaak.test/api
- Authentication: Bearer Token (required for most endpoints)
Endpoint | Method | Parameters | Description |
---|---|---|---|
/register |
POST | name , email , password |
Create a new user account |
/login |
POST | email , password |
Authenticate and receive API token |
Endpoint | Method | Auth Required | Parameters | Description |
---|---|---|---|---|
/v1/users/ |
GET | No | - | Get all users |
/v1/users/{user_id}/posts |
GET | No | user_id (path) |
Get user posts |
/v1/users/{user_id}/comments |
GET | No | user_id (path) |
Get user comments |
/v1/users/{user_id}/likes |
GET | No | user_id (path) |
Get user likes |
/v1/users/{user_id}/followers |
GET | No | user_id (path) |
Get user followers |
/v1/users/{user_id}/following |
GET | No | user_id (path) |
Get user following |
/v1/users/{user_id}/follow |
POST | Yes | user_id (path) |
Follow user |
/v1/users/{user_id}/unfollow |
DELETE | Yes | user_id (path) |
Unfollow user |
Endpoint | Method | Auth Required | Parameters | Description |
---|---|---|---|---|
/v1/posts |
GET | No | - | Get all posts |
/v1/posts/{post_id} |
GET | No | post_id (path) |
Get post by ID |
/v1/posts |
POST | Yes | content , attachments[] (optional) |
Create post |
/v1/posts/{post_id} |
PUT | Yes | post_id (path), content |
Update post |
/v1/posts/{post_id} |
DELETE | Yes | post_id (path) |
Delete post |
Endpoint | Method | Auth Required | Parameters | Description |
---|---|---|---|---|
/v1/comments |
POST | Yes | content , post_id |
Create comment |
/v1/comments/{comment_id} |
DELETE | Yes | comment_id (path) |
Delete comment |
Endpoint | Method | Auth Required | Parameters | Description |
---|---|---|---|---|
/v1/likes |
POST | Yes | post_id |
Create like |
/v1/likes/{like_id} |
DELETE | Yes | like_id (path) |
Delete like |
-
Error Handling: All endpoints return JSON responses. In case of an error, the response will include an error message and appropriate HTTP status code.
-
Rate Limiting: Information about rate limiting is not provided in the current API specification. Please contact the API provider for details on rate limiting policies.
-
Request Headers:
- For authenticated requests, include the Bearer token in the Authorization header.
- Set
Accept: application/json
in the request headers for all API calls.
-
Response Format: All successful responses will be in JSON format.
-
Pagination: If implemented, details about pagination (e.g., page size, next/previous page links) should be included in the response for endpoints that return multiple items.
-
Versioning: The current API version is v1, as evident from the endpoint paths.
-
Path Parameters: Parameters marked with (path) are part of the URL path
For ease of testing and using the API, a Postman collection file named pezhvaak.postman_collection.json
is provided in the root directory of the project. You can import this file into Postman and easily test the API.
- Import the
pezhvaak.postman_collection.json
file into Postman. - In Postman, go to the
Pezhvaak
section and then open theVariables
tab. - Set the
base_url
value in both theINITIAL VALUE
andCURRENT VALUE
fields (typicallyhttp://localhost:8000/api
). - Send a
/login
request to receive a token. - Place the received token in the
Variables
section underPezhvaak
for thetoken
variable in bothINITIAL VALUE
andCURRENT VALUE
fields. - You can now use the various APIs.
Please contact us before contributing to this project. You can contribute by creating an issue or submitting a pull request.
This project is licensed under the [License Name]. See the LICENSE file for details.