ساخت و مدیریت قالب ها در لاراول
در این مقاله می خواهیم یک پکیج جالب و کاربردی لاراول به اسم laravel-theme رو بررسی کنیم. این یک پکیج پایه است که مدیریت قالب ها (تم ها) در لاراول رو پ...
توسعه APIها روز به روز بیشتر و پرطرفدارتر میشود، اما هنوز ابهامات و سوالات زیادی در این زمینه برای بسیاری از توسعه دهندگان وجود دارد. در این مقاله ما تعدادی از سوالات رایج در این زمینه را جمعآوری کردیم و تلاش کردیم تا به صورت مختصر و به بهترین وجه به آنها پاسخ دهیم.
در این مورد ویکی پدیا توضیحی مختصر و قابل فهم برای مفهوم APIها فراهم کرده است، اما در اینجا به طور خیلی خلاصه به توضیح آن میپردازیم. در واقع API یک رابطه کاربری است که به سرویسهای دیگر اجازه میدهد تا اکشنهای CRUD را از طریق آن انجام دهند البته بعضی APIها کاملتر هستند و بعضی دیگر فقط دادهها را به اشتراک میگذارند و هیچ عملی برای ویرایش آنها انجام نمیدهند.
در ادامه به توضیح مختصر restful میپردازیم. لازم به ذکر است برای آشنایی بیشتر با آن میتوانید از مقاله restful به زبان ساده استفاده کنید و آن را به صورت عمیقتر بشناسید. در واقع restful یک رابطه برنامه نویسی کاربردی میباشد که از درخواستهای HTTPو دستوراتی از قبیل get، post، put، delete به منظور ایجاد، بروزرسانی، دریافت، حذف و پردازش بر روی دادهها و منابع بهره میبرد.
# List all the posts
GET /posts
# Create a post
POST /posts
# View a post
GET /posts/{id}
# Update a post
PATCH /posts/{id}
# Delete a post
DELETE /posts/{id}
در این مقاله ما به توضیح مختصر و ساده شدهی این مفهوم میپردازیم، در صورتی که میخواهید با این مفهوم بیشتر آشنا شوید میتوانید از این مقاله استفاده کنید.
امّا به طور مختصر، در سرویسهای stateful -مانند یک وب سرویس سنتی- یک کاربر برای لاگین کردن در سیستم باید از ایمیل و رمز عبور خود (یا موارد دیگر مانند آن) استفاده کند تا پس از آن سرویس موجود اطلاعات کاربر معتبر با اطلاعات داده شده را درsession ذخیره کند در این حالت در واقع ما دادههایی را در "state" ذخیره میکنیم و هر زمان که نیاز داشته باشیم دادهها را از آن بازیابی میکنیم.
سرویسهای stateless به صورت متفاوتی کار میکنند. در این حالت متغییر session از راه دور(remote) است، بدین معنا که سرویس api آن را مدیریت نمیکند. Sessionهای از راه دور(ریموت) اعتبارنامهای که ما باید به همراه درخواستهای که به سمت Api ارسال میکنیم، قرار دهیم را در خود ذخیره میکنند. نکتهای که در اینجا وجود دارد، Api هیچ state را ذخیره نمیکند؛ به عبارت دیگر stateless به این معناست که دادهها و اطلاعات کاربر، بین درخواستها، در سرور ذخیره نمیشود و وضعیت هر session در سمت کاربر ذخیره میشود.
اغلب اوقات APIها کاربران را از طریق توکن شناسایی میکنند. این توکن میتواند به عنوان یک پارامتر در header و یا به عنوان یک کوئری string مورد استفاده قرار بگیرد. در APIها دو نوع توکن محبوب برای احراز هویت وجود دارد:
مورد اول Api token authentication است که در این حالت کاربر یک توکن منحصر به فرد و از قبل تولید شده دارد. اگر ما این توکن را به همراه درخواست خود ارسال کنیم، سرویس Api در پشت صحنه کاربر مورد نظر ما را تایید میکند. این ویژگی به طور پیش فرض توسط لاراول پشتیبانی میشود.
مورد دیگر استفاده از JSON web tokens است. این مورد یک روش پیچیدتر است اما امکانات و امنیت بیشتٰری را ارائه میدهد. لاراول به صورت پیش فرض از JSONتوکنها پشتیبانی نمیکند، اما ما میتوانیم از این پکیچ عالی برای انجام این کار استفاده کنیم.
همچنین شما میتوانید از لاراول passport برای اجراز هویت در Apiها استفاده کنید.
۵-چرا در لاراول یک گروه میان افزار(middleware) برای "web" و یک گروه میان افزار برای "api" وجود دارد؟
این مورد به stateful و stateless بودن ارتباط دارد. لایهی API نسبت به لایهی web نیازها و گزینههای متفاوتی دارد، برای مثال:
نکته: در صورتی که شما در کنترلر API خود از اتصال مدل-روت استفاده میکنید، مطمئن شوید که میان افزار "binding" را به گروه میان افزار API خود اضافه کردهاید.
به طور معمول شما باید تست ویژگیهای مختلف را برای API خود بنویسید. برای آشنایی بیشتر با این مورد شما میتوانید دو ویدیو نوشتن تست برای api و همچنین اطلاعات فیک برای تست api را مشاهده کنید.
در این مقاله تلاش شد تا به برخی سوالات متداول در زمینهی Api پاسخ داده شود برای آشنایی بیشتر با apiها شما میتوانید از آموزشهای ویدیوی موجود در سایت استفاده کنید و همچنین در صورت هرگونه سوال یا ابهام در این موضوع میتوانید سوال خود را در بخش نظرات مطرح کنید.
در این مقاله می خواهیم یک پکیج جالب و کاربردی لاراول به اسم laravel-theme رو بررسی کنیم. این یک پکیج پایه است که مدیریت قالب ها (تم ها) در لاراول رو پ...
امروز می خواهیم در مورد جلوگیری از ورود پسوردهای معمول و ساده از طرف کاربران صحبت کنیم. این کار رو با استفاده از پکیج laravel-password انجام میدیم که...
تا قسمت دوم این سری ما راه اندازی اولیه کار رو برای ساخت چند پکیج انجام دادیم. با این حال اگر پکیج شما پیچیده تر باشه نیاز به فایل پیکربندی برای اون د...
اخیرا من دنبال یک راه ساده برای خروجی Excel گرفتن از اطلاعاتم بصورت یک spreadsheet بودم که بتونه بصورت دوره ای به حسابدار شرکت ارائه بشه. در این آموزش...