روز برنامه‌نویس مبارک 🤩🎉 از هدایای روز برنامه‌نویس جا نمونی ⌛
۰ ثانیه
۰ دقیقه
۰ ساعت
۱ کیان سلگی
نحوه تشخیص انواع متدها
جامعه پی اچ پی ایجاد شده در ۳۰ دی ۱۴۰۰

سلام وقت بخیر

استاد داخل این جلسه و جلسه‌های قبل فرمودند که برای توسعه api گاهی یک end point تعریف میشود و برای تفکیک اینها بنابر منظور استفاده آن از متدهای مختلف استفاده میشود.

سوالی که برای من به وجود این است که بنده تا قبل از اینکه انواع متدها رو بشناسم فقط متد get و post رو میشناختم و یک راه تشخیص این دو این بود که متد get اطلاعات رو به انتهای url به صورت query parametr اضافه میکرد اما post به این صورت نبود.

توی این اموزش استاد داخل مستندات از متد delete استفاده کرده بودند و اطلاعات درخواست رو به صورت query parameetr اضافه کرده بودند .

سوال بنده اینه که چطور باید تشخیص داد که این متد delete است نه get ؟ چون از نظر ظاهری یک شکل هستند

سوال بعدی این که چرا برای delete یا برخی از موارد دیگه به جای اینکه اطلاعات رو به صورت json درخواست بدیم از query parametr استفاده شد؟

سلام.

هر کدوم ازین متدها قانون خاصی دارن. البته اینم باید بدونین تمام کارهارو با یک متد هم میشه انجام داد مثلا با get هم دادههارو واکشی کنید هم داده هارو Delete کنید و هم اینسرت و ... ولی طبق استانداردهای موجود این کار اشتباه هست که ممکنه ناامنی و بروز اشتباهات هم بشه برای مثال شما از get برای delete استفاده کردی و یک ابزاری روی سیستم شما یا یک crawler این آدرسو ایندکس میکنه و مدام درخواست میفرسته، خب تصورشو کنید چه اتفاقی میوفته! اگه اون ادرس مربوط به یک فیلد باشه یک فیلد دلیت میشه ولی اگه مربوط به تعداد بیشتری ... ولی برای همین مثال اگر نوع فیلد از نوع post باشد، دیگه این برنامه‌ها نمیتونن فرمی رو سابمیت کنن و ...

حالا شما باید تفاوت این‌ها رو در گوگل سرچ کنید که منابع زیادی هم برای اینها اومده و تفاوت هارو اوردن.

فقط نکته ای که باید دقت کنید اینه که html فقط از دو متد get و post استفاده میکند و برای اینکه بخواید از متد‌های دیگه هم بهره ببرید باید با توجه به سبکی که دارن که آیا شبیه post یا get هستن، یک متد را مشخص کنید و نام متد مورد نظرتون رو بعنوان یک فیلد hidden با فرم html برای سرور ارسال کنید.

محسن موحد ۳۰ دی ۱۴۰۰، ۱۱:۵۶