آموزش گام به گام و سریع ادغام API در وردپرس
در این آموزش وردپرس، قصد داریم نحوه ادغام یک API شخص ثالث در وردپرس را به شما بیاموزیم. لازم به ذکر است که Wordpress برخی از API های مرتبط با محتوای خود را ارائه کرده است. شما می توانید API های شخص ثالث را با استفاده از PHP curl با وردپرس ادغام کنید، اما این راه درستی نیست زیرا وردپرس قبلاً برخی از توابع را برای استفاده از API های شخص ثالث ارائه کرده است.
اگر تا کنون با ای پی آی ها به خصوص در محیط وردپرس کار نکرده اید، شاید این مقاله برای شما مبهم باشد اما نگران نباشید. در ادامه به توضیح کامل API ها می پردازیم.
رابط برنامه نویسی اپلیکیشن (API) چیست؟
یک رابط برنامه نویسی اپلیکیشن یا API به صورت زیر تعریف می شود:
یک رابط یا پروتکل ارتباطی بین کلاینت و سرور با هدف ساده سازی ساخت نرم افزار سمت مشتری.
اگر با API ها آشنا نیستید، این توضیح ممکن است خیلی کمک کننده نباشد. به بیان ساده تر، API مجموعه ای از کدها است که به یک سیستم اجازه می دهد تا با سیستم دیگر تعامل (یا “رابطه”) داشته باشد. اگر تا به حال نقشه گوگل را به سایت وردپرس خود اضافه کرده اید، از Google’s Maps API استفاده کرده اید که به سایت وردپرس شما اجازه می دهد با نقشه های گوگل ارتباط برقرار کند.
این سیستم ها نیازی به مجزا بودن ندارند. وردپرس قبلاً چندین API برای مواردی مانند افزونه ها، تنظیمات و کدهای کوتاه آماده کرده است. این ها می توانند توسط توسعه دهندگان پلاگین و تم برای تعامل با هسته وردپرس و ایجاد چیزهایی مانند ایجاد کد های کوتاه و افزودن صفحه تنظیمات به مدیر وردپرس، استفاده شوند.
تفاوت آن با REST API این است که به سیستم های خارج از نصب وردپرس شما اجازه می دهد تا با وردپرس تعامل داشته باشند، این دقیقا جایی است که قسمت متد REST وارد می شود.
انتقال بازنمودی حالت (REST) چیست؟
Representational State Transfer یا REST استاندارد هایی را ارائه می دهد که سیستم های وب می توانند از آن ها برای ارتباط با یکدیگر استفاده کنند. بدون REST دو سیستم قادر به درک یکدیگر نیستند و بنابراین داده ها را به مکانی نامشخص می فرستند و نمی توانند از آن داده ها استفاده کنند. برای اینکه یک برنامه RESTful باشد، باید با پنج اصل زیر مطابقت داشته باشد:
- رابط یکنواخت. URL های مورد استفاده برای دسترسی به منابع در سیستم باید یکنواخت، سازگار، و از طریق یک رویکرد مشترک مانند GET قابل دسترسی باشند.
- کلاینت-سرور. برنامه های کاربردی سرویس گیرنده و برنامه های کاربردی سرور باید مجزا باشند، به طوری که بتوان آن ها را مستقل از یکدیگر توسعه داد. اگر فناوری سمت سرور (یعنی وردپرس) تغییر کند، اپلیکیشن سمت سرور همچنان باید از طریق همان روش ساده به آن دسترسی داشته باشد.
- بدون تغییر حالت. هنگامی که درخواست جدیدی با استفاده از API ارسال می شود، سرور حالت را تغییر نمی دهد. همچنین درخواست هایی که انجام شده را ذخیره نمی کند.
- قابلیت کش. برای بهبود سرعت و انطباق با استاندارد های وب، همه منابع باید قابل کش شدن باشند. کش را می توان در سرور یا سمت سرویس گیرنده پیاده سازی کرد.
- سیستم لایه ای. یک سیستم RESTful به شما امکان می دهد از چندین لایه برای دسترسی به آن استفاده کنید و در صورت نیاز، داده ها را در سرورهای میانی ذخیره کنید. سرور نمی تواند تشخیص دهد که آیا کلاینت نهایی مستقیماً به آن متصل است یا خیر.
همه این محدودیتها به صفحات وب و برنامهها مربوط میشوند و بر روشی که یک برنامه میتواند با API ارتباط برقرار کند، حاکم است.
معنای دو مورد بالا در وردپرس
قرار دادن REST و API در کنار هم به این معنی است که WordPress REST API مجموعهای از کدهایی است که به منظور ایجاد ارتباط برای سایر سیستمها با وردپرس طراحی شده است و به گونهای ساخته شده است که اطمینان حاصل شود که این سیستمها یکدیگر را درک میکنند.
این بدان معناست که برای مثال یک وب سایت شخص ثالث یا یک برنامه تلفن همراه می تواند به پایگاه داده وردپرس شما دسترسی داشته باشد، داده ها را از آن واکشی کند و داده ها را به آن اضافه کند. با این حال، تعدادی پیامد و کاربرد برای این بخش وجود دارد.
مروری بر دستورات REST
برای استفاده از داده های اپلیکیشن شخص ثالث، باید از یکی از دستورات REST را برای تعامل با سایت خود استفاده کنید. دستوراتی که باید استفاده کنید عبارتند از:
- GET – منبعی مانند یک پست یا برخی داده های دیگر را بازیابی می کند.
- POST – منبعی مانند پست، پیوست یا منبع دیگری را به سرور اضافه می کند.
- PUT – از آن می توان برای ویرایش یا به روز رسانی منبعی که از قبل روی سرور بوده، استفاده کرد.
- DELETE – یک منبع را از سرور حذف می کند. با احتیاط از آن استفاده کنید!
بیایید به نوبه خود به هر یک از این موارد نگاهی بیندازیم.
GET
دستور GET احتمالاً متداول ترین دستور مورد استفاده است: این دستور داده ها را بازیابی می کند. مثال زیر (که وقتی با موفقیت به سایت خود دسترسی پیدا کردید از آن استفاده می کنید) لیستی از تمام صفحات منتشر شده در سایت شما را نشان می دهد:
GET http://yoursite.com/wp-json/wp/v2/posts/?status=published
پس از بازیابی داده ها با متد GET، می توانید از آن برای اطلاع رسانی مرحله بعدی خود استفاده کنید. شما می توانید یکی از آن پست ها را حذف کنید، آن را ویرایش کنید یا به روز کنید. شما به سادگی می توانید پست ها را به برنامه وب خود خروجی دهید. فرض کنید می خواهید آخرین پست را دریافت کنید. باید از این دستور استفاده کنید:
GET http://yoursite.com/wp-json/wp/v2/posts/?per_page=1
POST
از متد POST برای افزودن داده ها یا منابع جدید به سایت خود استفاده کنید. برای مثال، اگر می خواهید یک پست ایجاد کنید، با استفاده از دستور POST شروع کنید:
POST http://yoursite.com/wp-json/wp/v2/posts/
این دستور یک پست پیش نویس خالی جدید ایجاد می کند. با دستور POST، میتوانید منابع دیگری غیر از پستها، از جمله پیوستها و انواع دیگر پستها را نیز اضافه کنید. برای افزودن یک صفحه به سایت خود، ممکن است از چیزی شبیه به این استفاده کنید:
POST http://yoursite.com/wp-json/wp/v2/posts/pages
با این کار یک صفحه خالی درست می شود به همان روشی که شما یک پست خالی ایجاد می کنید.
PUT
دستور PUT به شما امکان می دهد یک منبع موجود، از جمله پست ها را ویرایش کنید. فرض کنید تعدادی پیش نویس پست در سایت خود دارید. میخواهید آن ها را بررسی کنید و یکی را بهروزرسانی کنید تا منتشر شود. میتوانید با واکشی فهرستی از همه پستهای پیشنویس شروع کنید:
POST http://yoursite.com/wp-json/wp/v2/posts/?status="draft"
سیستم لیستی از تمام پست های پیش نویس فعلی را به شما می دهد. می توانید وضعیت یکی از آن ها را با استفاده از شناسه آن تغییر دهید:
PUT http://yoursite.com/wp-json/wp/v2/posts/567
این دستور به آن پست دسترسی پیدا می کند و به شما امکان ویرایش آن را می دهد. سپس می توانید وضعیت آن را با استفاده از آرگومان status تغییر دهید:
"status" = "publish"
سرور وضعیت 200 – OK را برمیگرداند که به شما میگوید درخواست PUT با موفقیت پست را ویرایش کرده است.
DELETE
دستور DELETE کاری را انجام می دهد که انتظار دارید: یک منبع را حذف می کند. به طور پیش فرض، اگر از آن برای حذف یک پست استفاده کنید، به جای حذف دائمی آن، آن را در سطل زباله قرار می دهد. بنابراین اگر می خواهید پستی را که ایجاد کرده اید به سطل زباله منتقل کنید، از این دستور استفاده کنید:
DELETE http://yoursite.com/wp-json/wp/v2/posts/567
با این حال، اگر میخواهید سطل زباله را دور بزنید و آن را برای همیشه حذف کنید، از آرگومان force استفاده میکنید:
DELETE http://yoursite.com/wp-json/wp/v2/posts/567?force=true
در ادامه روش های استفاده از API را در وردپرس نام می بریم.
متد wp_remote_get
برای فرستادن درخواست wp_remote_get پارامتر های بدنه کد را به صورت زیر تنظیم کنید:
$url = https://vrsoftcoder.com/";
$bodyRequest = array(
"headers"=>array(
'key' => 'your api key',
)
);
$api_response = wp_remote_get($url,$bodyRequest);
متد wp_remote_post
همچنین برای ارسال درخواست wp_remote_post پارامترهای بدنه کد را به صورت زیر تنظیم کنید:
$ApiUrl = "https://vrsoftcoder.com/?token=";
$bodyRequest = array(
"headers"=>array(
'Content-Type' => 'application/x-www-form-urlencoded',
'Ocp-Apim-Subscription-Key' => BOOKER_SUBSCRIPTION_KEY
),
"body"=>array(
"grant_type"=>"client_credentials",
"client_id"=>BOOKER_CLIENT_ID,
"client_secret"=>BOOKER_CLIENT_SECRET,
"scope"=>BOOKER_SCOPE
)
);
$api_response = wp_remote_post($tokenUrl,$bodyRequest);
منابع: kinsta.com و vrsoftcoder.com