coarad supp
4 سال پیش توسط coarad supp مطرح شد
5 پاسخ

افزودن دیتا به ریسپانس در میدلویر

سلام دوستان؛ میخواستم وقتی هر ریکوئستی به سرور زده شد، توی میدلویر یه سری چیزا پک بشه و حالا یا توی هدر یا ریسپانس یا هرجای دیگه اون شرایطی که چک کردم، اضافه بشه

شاید منظورمو کامل نرسوندم با یه مثال میگم

برای api وقتی درخواستی میاد که مثلا لیست مقالات رو بگیره، میخوام چک کنم که این کاربر ایا مقاله ای هست که نظر نداده باشه؟یا شرایط دیگه ای، میخوام توی میدلویر چک بشه و توی ریسپانسی که برمیگرده یه دیتایی برای این شرایط برگرده، راه حلی داره؟

چون واسه چک کردن این شرایط روت هایی جداگونه ای قرار داده شده، و چند تا روت هست، میخواستم ببینم امکانش هست توی هر ریکوئستی که زده میشه این ظرایط چک بشه، و اصولش به چه شکل درست هست


ثبت پرسش جدید
علی بیات
تخصص : توسعه دهنده ارشد وب
@ali.bayat 4 سال پیش مطرح شد
0

بهترین راه این هست که در درخواست برگشتی از لیست مقالات، همه داده های مورد نیاز اضافه شده باشه (حالا یا با Eager-Loading , یا مدیریت ریسپانس‌ها به شکل مستقیم)
و یا میتونی اندپوینت جدایی براش در نظر گرفته بگیری مثلا:


اما اگر خواستی داده ای به هدر اضافه کنی و از هدر استفاده کنی میتونی به شکل زیر عمل کنی:

توی متد handle میدلور میتونی به شکل زیر هدر رو اضافه کنی:

    public function handle($request, Closure $next)
    {
            $response = $next($request);
            $response->header('Access-Control-Allow-Origin', '*');
            //add more headers here
            return $response;
     }
  • درخواست به این میدلور میرسه
  • ابتدا هدر ها اضافه میشند
  • بعد ریسپانس برگشت داده میشه

coarad supp
تخصص : برنامه نویس لاراول
@coaradsupp 4 سال پیش مطرح شد
0

@ali.bayat

ممنون، کلا میخواستم ببینم این راهی که من میگم راه کار درستی هست یا نه؟
ینی میخوام وقتی برای مثال اپلیکیشن اندرویدی باز شد هر ریکوئستی که زد، علاوه بر اون پاسخ ها، یه سری چیزای دیگه هم چک بشه و در کنار پاسخی که ارسال میشه قرار داده بشه، ینی یه میدلویر ست بشه روی همه روت ها و این شرایط رو چک کنه، راه کار درستی هست؟ امکان پذیر هست؟


علی بیات
تخصص : توسعه دهنده ارشد وب
@ali.bayat 4 سال پیش مطرح شد
0

من ترجیح میدم این اطلاعات رو در بدنه ریسپانس قرار بدم.


coarad supp
تخصص : برنامه نویس لاراول
@coaradsupp 4 سال پیش مطرح شد
0

@ali.bayat

اونوقت چطو میشه که یه بار توی میدلویر یه بار دیتا اضافه کرد به بدنه ریسپانس یه بار توی کنترلر؟


علی بیات
تخصص : توسعه دهنده ارشد وب
@ali.bayat 4 سال پیش مطرح شد
0

وقتی که کوئری می‌زنید میتونید داده های لازم رو ایگرلود کنید دیگه
اگر هم ساختار مورد نظر شما رو نداره، میتونی ساختار ریسپانس برگشتی رو با توابع PHP به حالت موردنظرت تبدیل کنی

در این حالت میتونی از میدلور هم استفاده نکنی و داخل کنترلر مشخص کنی که کوئری که باید بزنی ساده هست یا شامل داده های اضافی


برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام