إنشاء الحد الأدنى من لوحة الإعلانات القابلة للتطبيق REST API للأغراض التعليمية.
الحصول على قوائم بجميع العلامات والمشاركات والمستخدمين
البحث في القوائم
تسجيل المستخدم
يمكن للمستخدم المسجل:
إضافة مشاركات جديدة
التعليق على المشاركات الموجودة
حذف وتحرير مشاركاتك وتعليقاتك
بي إتش بي 8.1+
لارافيل 10
الملحن
ماي إس كيو إل
POST
/api/v1/auth/register
اسم | يكتب | نوع البيانات | وصف |
---|---|---|---|
اسم | مطلوب | خيط | اسم |
كنية | مطلوب | خيط | معرف يمكن قراءته بواسطة الإنسان |
بريد إلكتروني | مطلوب | خيط | عنوان البريد الإلكتروني |
كلمة المرور | مطلوب | خيط | كلمة المرور |
كلمة المرور_مؤكدة | مطلوب | خيط | تأكيد كلمة المرور |
CREATED
201
{ "access_token", "token_type": "Bearer" }
POST
/api/v1/auth/login
تسجيل الدخولاسم | يكتب | نوع البيانات | وصف |
---|---|---|---|
بريد إلكتروني | مطلوب | خيط | عنوان البريد الإلكتروني |
كلمة المرور | مطلوب | خيط | كلمة المرور |
200
OK
{ "access_token", "token_type":"Bearer" }
POST
/api/v1/auth/logout
تسجيل الخروجمفتاح | قيمة |
---|---|
إذن | حامل {رمز} |
204
NO CONTENT
GET
/api/v1/profile
احصل على ملف تعريف المستخدم المصادق عليهمفتاح | قيمة |
---|---|
إذن | حامل {رمز} |
200
OK
{ "data": { "user_id", "name", "nickname", "email", "created_at", "updated_at", "posts_count", "comments_count" } }
GET
/api/v1/profile/posts
احصل على الملف الشخصي والمشاركات الخاصة بالمستخدم المعتمدمفتاح | قيمة |
---|---|
إذن | حامل {رمز} |
اسم | يكتب | نوع البيانات | وصف |
---|---|---|---|
لكل_صفحة | خياري | كثافة العمليات | عدد المشاركات في كل صفحة |
صفحة | خياري | كثافة العمليات | رقم الصفحة |
200
OK
{ "data": [ { "post_id", "title", "price", "description", "created_at", "updated_at", "user_id", "user_nickname", "tags": [ { "tag_id", "name", "slug", }, ... ], "comments_count" } ], "links": {...}, "meta": {...}, "user": { "user_id", "name", "nickname", "email", "created_at", "updated_at" } }
GET
/api/v1/profile/comments
احصل على الملف الشخصي والتعليقات الخاصة بالمستخدم المعتمدمفتاح | قيمة |
---|---|
إذن | حامل {رمز} |
اسم | يكتب | نوع البيانات | وصف |
---|---|---|---|
لكل_صفحة | خياري | كثافة العمليات | عدد التعليقات في كل صفحة |
صفحة | خياري | كثافة العمليات | رقم الصفحة |
200
OK
{ "data": [ { "comment_id", "body", "created_at":, "updated_at", "post_id", "user_id", "user_nickname" }, ... ], "links": {...}, "meta": {...}, "user": { "user_id", "name", "nickname", "email", "created_at", "updated_at" } }
GET
/api/v1/users
احصل على جميع المستخدميناسم | يكتب | نوع البيانات | وصف |
---|---|---|---|
س | خياري | خيط | استعلام البحث |
لكل_صفحة | خياري | كثافة العمليات | عدد المستخدمين لكل صفحة |
صفحة | خياري | كثافة العمليات | رقم الصفحة |
200
OK
{ "data": [ { "user_id", "name", "nickname", "email", "created_at", "updated_at", "posts_count", "comments_count" }, ... ], "links": {...}, "meta": {...} }
GET
/api/v1/users/{nickname}
احصل على المستخدم200
OK
{ "data": { "user_id", "name", "nickname", "email", "created_at", "updated_at", "posts_count", "comments_count" } }
GET
/api/v1/users/{nickname}/posts
احصل على المستخدم ومشاركاتهاسم | يكتب | نوع البيانات | وصف |
---|---|---|---|
لكل_صفحة | خياري | كثافة العمليات | عدد المشاركات في كل صفحة |
صفحة | خياري | كثافة العمليات | رقم الصفحة |
200
OK
{ "data": [ { "post_id", "title", "price", "description", "created_at", "updated_at", "user_id", "user_nickname", "tags": [ { "tag_id", "name", "slug" }, ... ], "comments_count" }, ... ], "links": {...}, "meta": {...}, "user": { "user_id", "name", "nickname", "email", "created_at", "updated_at" } }
GET
/api/v1/users/{nickname}/comments
احصل على المستخدم وتعليقاتهاسم | يكتب | نوع البيانات | وصف |
---|---|---|---|
لكل_صفحة | خياري | كثافة العمليات | عدد التعليقات في كل صفحة |
صفحة | خياري | كثافة العمليات | رقم الصفحة |
200
OK
{ "data": [ { "comment_id", "body", "created_at":, "updated_at", "post_id", "user_id", "user_nickname" }, ... ], "links": {...}, "meta": {...}, "user": { "user_id", "name", "nickname", "email", "created_at", "updated_at" } }
GET
/api/v1/tags
احصل على جميع العلاماتاسم | يكتب | نوع البيانات | وصف |
---|---|---|---|
س | خياري | خيط | استعلام البحث |
200
OK
{ "data": [ { "tag_id", "name", "slug", "post_count" }, ... ] }
GET
/api/v1/tags/{slug}
احصل على العلامة ومنشوراتهااسم | يكتب | نوع البيانات | وصف |
---|---|---|---|
لكل_صفحة | خياري | كثافة العمليات | عدد المشاركات في كل صفحة |
صفحة | خياري | كثافة العمليات | رقم الصفحة |
200
OK
{ "data": [ { "post_id", "title", "price", "description", "created_at", "updated_at", "user_id", "user_nickname" }, ], "links": {...}, "meta": {...}, "tag": { "tag_id", "name", "slug" } }
GET
/api/v1/posts
الحصول على جميع المشاركاتاسم | يكتب | نوع البيانات | وصف |
---|---|---|---|
س | خياري | خيط | استعلام البحث |
لكل_صفحة | خياري | كثافة العمليات | عدد المشاركات في كل صفحة |
صفحة | خياري | كثافة العمليات | رقم الصفحة |
200
OK
{ "data": [ { "post_id, "title", "price", "description", "created_at", "updated_at", "user_id", "user_nickname", "tags": [ { "tag_id", "name", "slug" }, ... ], "comments_count" }, ... ], "links": {...}, "meta": {...} }
GET
/api/v1/posts/{id}
احصل على منشور وتعليقاتهاسم | يكتب | نوع البيانات | وصف |
---|---|---|---|
لكل_صفحة | خياري | كثافة العمليات | عدد التعليقات في كل صفحة |
صفحة | خياري | كثافة العمليات | رقم الصفحة |
200
OK
{ "data": [ { "comment_id", "body", "created_at", "updated_at", "post_id", "user_id", "user_nickname" }, ... ], "links": {...}, "meta": {...}, "post": { "post_id", "title", "price", "description", "created_at", "updated_at", "user_id", "user_nickname", "tags": [ { "tag_id", "name", "slug" }, ... ] } }
POST
/api/v1/posts
أضف منشورًا جديدًامفتاح | قيمة |
---|---|
إذن | حامل {رمز} |
اسم | يكتب | نوع البيانات | وصف |
---|---|---|---|
عنوان | خياري | خيط | عنوان |
سعر | خياري | يطفو | سعر |
وصف | خياري | خيط | وصف |
العلامات[معرف] | خياري | صفيف [كثافة العمليات] | مجموعة من معرفات العلامات |
CREATED
201
{ "data": { "post_id", "title", "price", "description", "created_at", "updated_at", "user_id", "user_nickname", "tags": [ { "tag_id", "name", "slug" }, ... ] }, }
PUT
/api/v1/posts/{id}
تعديل المشاركةمفتاح | قيمة |
---|---|
إذن | حامل {رمز} |
اسم | يكتب | نوع البيانات | وصف |
---|---|---|---|
عنوان | خياري | خيط | عنوان |
سعر | خياري | يطفو | سعر |
وصف | خياري | خيط | وصف |
العلامات[معرف] | خياري | صفيف [كثافة العمليات] | مجموعة من معرفات العلامات |
200
OK
{ "data": { "post_id", "title", "price", "description", "created_at", "updated_at", "user_id", "user_nickname", "tags": [ { "tag_id", "name", "slug" }, ... ] }, }
DELETE
/api/v1/posts/{id}
حذف مشاركةمفتاح | قيمة |
---|---|
إذن | حامل {رمز} |
204
NO CONTENT
POST
/api/v1/posts/{id}/comments
أضف تعليقًا جديدًا إلى إحدى المشاركاتمفتاح | قيمة |
---|---|
إذن | حامل {رمز} |
اسم | يكتب | نوع البيانات | وصف |
---|---|---|---|
جسم | مطلوب | خيط | نص التعليق |
CREATED
201
{ "data": { "comment_id", "body", "created_at", "updated_at", "post_id", "user_id", "user_nickname", }, }
PUT
/api/v1/comments/{id}
تحرير التعليقمفتاح | قيمة |
---|---|
إذن | حامل {رمز} |
اسم | يكتب | نوع البيانات | وصف |
---|---|---|---|
جسم | مطلوب | خيط | نص التعليق |
200
OK
{ "data": { "comment_id", "body", "created_at", "updated_at", "post_id", "user_id", "user_nickname", } }
DELETE
/api/v1/comments/{id}
حذف تعليقمفتاح | قيمة |
---|---|
إذن | حامل {رمز} |
204
NO CONTENT
انسخ هذا المستودع وانتقل إلى مجلد المشروع الخاص بك:
استنساخ بوابة https://github.com/AllaAverina/bulletin-board-APIcd Bulletin-board-API
تثبيت التبعيات:
تثبيت الملحن
ابدأ تشغيل MySQL، وقم بتغيير معلمات الاتصال بقاعدة البيانات في ملف .env.example ثم قم بتشغيل:
انسخ .env.example .env
قم بتشغيل الأمر لتشغيل عمليات الترحيل:
ترحيل الحرفيين PHP
أو إذا كنت تريد ملء قاعدة البيانات ببيانات وهمية:
حرفي php يهاجر --seed
بدء تشغيل خادم الويب:
خدمة PHP الحرفي
افتح في متصفحك، على سبيل المثال، http://localhost:8000/api/v1/posts
قم بإنشاء قاعدة بيانات جديدة للاختبار، وقم بتغيير المعلمات للاتصال بها في ملف .env.testing وقم بتشغيل:
اختبار الحرفيين PHP
انسخ هذا المستودع وانتقل إلى مجلد المشروع الخاص بك:
استنساخ بوابة https://github.com/AllaAverina/bulletin-board-APIcd Bulletin-board-API
تثبيت التبعيات:
تشغيل عامل الميناء --rm -u "$(id -u):$(id -g)" -v "$(pwd):/var/www/html" -w /var/www/html laravelsail/php82-composer:latest تثبيت الملحن --تجاهل طلبات النظام الأساسي
إنشاء ملف .env:
cp.env.docker.examlpe.env
قم بإنشاء اسم مستعار لـ Shell وقم بتشغيل الشراع:
الاسم المستعار الشراع='[ -f الشراع ] && sh الشراع || sh بائع/bin/sail'sail up -d
قم بتشغيل الأمر لتشغيل عمليات الترحيل:
يهاجر حرفي الشراع
أو إذا كنت تريد ملء قاعدة البيانات ببيانات وهمية:
حرفي الشراع يهاجر - بذرة
افتح في متصفح، على سبيل المثال، http://localhost/api/v1/posts
لوقف استخدام الحاويات:
توقف الشراع
قم بإعداد ملف .env.testing:
cp .env.docker.testing .env.testing
تشغيل الاختبارات:
اختبار الحرفي الشراع