آموزش REST API در وردپرس
قبل از پرداختن به آموزش REST API در وردپرس ، مفهوم REST API را معرفی میکنیم. REST API که همچنین با نام Jason Rest API نیز شناخته میشود، قابلیت جدیدی در وردپرس است که کار با این برنامه را دلپذیرتر کرده است.
API چیست؟
API مخفف Application Programming Interface و نرمافزاری است که به عنوان یک واسطه بین دو نرمافزار دیگر عمل میکند. Rest نیز مخفف Representational State Transfer است که میتواند یک API را در مبنای HTTP تعریف کند.
تعریف این API در قالب HTTP نه تنها باید برای دادههایی که حجم زیادی دارند مناسب باشد بلکه باید سازگار، سبک و کاربر پسند باشد.
در واقع REST یک الگوی طراحی برای API ها است. تمام دادههایی که در اینترنت وجود دارند توسط سرورها مدیریت میشوند و نرمافزارها برای دانلود و آپلود دادهها با وبسرورها در ارتباط هستند. REST API راهی است برای ارتباط دو سیستم مانند یک مرورگر وب و یک سرور از طریق HTTP.
در خود برنامهی وردپرس API هایی وجود دارد که برای کار با قالبها و افزونهها به کار گرفته میشوند و به خوبی نیز کار میکنند ولی متاسفانه برای ارتباط با نرمافزارهای دیگر کار با این API ها بسیار دشوار است در حالی که همانطور که گفتیم هدف از استفاده API ها ایجاد سازگاری بین اپلیکیشنهای مختلف است، به همین دلیل باید API های جدیدی به وردپرس متصل شود.
JSON چیست؟
JSON مخفف عبارت JavaScript Object Notation است که میتواند فرمت مشخصی را برای تبادل دادهها بر اساس زبان برنامهنویسی JavaScript معرفی کند.
بسیاری از زبانهای برنامهنویسی قابلیت تبدیل دادهها به فرمت JSON را دارند از این رو امروزه بیشترین API های مورد استفاده در وردپرس به فرمت JSON هستند. در این تبدیل، فضای کاربری میتواند در بین اپلیکیشنها یا نرم-افزارهای مختلف با زبانهای برنامهنویسی متفاوت قرار بگیرد و دادهها را تفسیر و تحلیل کند.
JSON باعث شده است زبانها برنامهنویسی به راحتی بتوانند با وردپرس ادغام شوند که این عامل باعث ارتباط آسان وردپرس با فضای خارج از آن شده به طوری که قرار دادن محتوای وردپرس در دیگر نرمافزارها بسیار آسان شده است، همچنین قابلیتهای جدیدی را در اختیار برنامهنویسان قرار داده است که باعث آسانتر شدن کار و توسعهی وردپرس میشود.
فرمت JSON توسط آی او اس و اندروید پشتیبانی میشود، این ویژگی با تبدیل وردپرس به سروری برای کاربران اندروید و آی او اس باعث گسترش برنامههای موبایل تحت وردپرس میشود. همین عامل همچنین باعث بالا رفتن تقاضا برای برنامهنویسی وردپرس میشود که خبر خوبی برای افراد متخصص در این زمینه است.
همانطور که اشاره کردیم هدف مهم ساخت API جامع بودن آن است. API ساخته شده بر اساس JSON باعث میشود وردپرس با نرمافزارهای دیگر فارغ از اینکه آنها از چه زبان برنامهنویسی استفاده میکنند ارتباط برقرار کند که البته این ارتباط از طریق یک مسیر استاندارد و دوطرفه است.
پس به صورت خلاصه REST API در ورد پرس یک مسیر جامع و سازگار بین وردپرس و نرمافزارهای دیگر ایجاد میکند.
تمام مزیتهایی که گفتیم باعث اهمیت روزافزون REST API در وردپرس میشوند از این رو با هم نگاهی به آموزش REST API در وردپرس خواهیم داشت.
بررسی REST API در وردپرس
با یک مثال میخواهیم به آموزش rest api در وردپرس و کاربرد آن بپرردازیم. در این مثال برای اجرای درخواستها از CLI کمک میگیریم. CLI یا رابط خط فرمان قابلیت پردازش اطلاعات با REST API بدون نیاز به اسکریپت نویسی اضافه را برای ما فراهم میکند.
توجه داشته باشید برای دریافت نتیجهی بهتر از نسخه وردپرس ۴٫۴ یا بالاتر استفاده کنید.
قدم اول :
ابتدا اصطلاحات و مفاهیم اصلی و کاربردی REST API در وردپرس را مرور میکنیم:
• Requests:
درخواستها برای ذخیره یا بازیابی اطلاعات درخواست فعلی استفاده میشود.
• Responses:
پاسخها دادههایی که درخواست کرده بودید را به شما ارائه میدهد و در صورت بروز اشکال در این کار خطای مربوطه را اعلام میکند.
• Schema:
طرحواره لیست آیتمهای ورودی و خروجی قابل قبول توسط REST API را نمایش میدهد.
• Routes & Endpoints:
یک مسیر به فرمت URL است. شروع همه درخواست ها به سایت های وردپرسی از wp-json/ می باشد. هر آنچه که بعد از این لینک بیاید به عنوان یک Route شناخته می شود که شامل تمام نقاط پایانی است.
هر route شامل یک سری اطلاعات است:
o namespace: این عبارت برای جلوگیری از همنامی API CALL ها به کار میرود.
o endpoints: هر عبارتی که بعد از namespace می آید مانند methods و args .
o links: لینکی که ما را به این API CALL میرساند.
• Controller classes:
کلاسهای کنترل کننده برای مدیریت قسمتهای خاصی از REST API ها به کار میروند.
قدم دوم :
به عنوان یک نمونه میخواهیم یک تماس HTTP به REST API در وردپرس ایجاد کنیم. هر تماس REST API در وردپرس بر اساس
http://yourdomain.com/wp-json/ میباشد.
حالا باید با دستور curl اتصال را تست کنیم.
curl -X OPTIONS -i http://yourdomain.com/wp-json/
پیام HTTP این درخواست به شکل زیر خواهد بود:
HTTP/1.1 200 OK
Date: Wed, 10 Mar 2021 20:03:36 GMT Server: Apache/2.4.29 X-Robots-Tag: noindex Link: <http://yourdomain.com/wp-json/>; rel=”https://api.w.org/” X-Content-Type-Options: nosniff Access-Control-Expose-Headers: X-WP-Total, X-WP-TotalPages Access-Control-Allow-Headers: Authorization, Content-Type Allow: GET Transfer-Encoding: chunked Content-Type: application/json; charset=UTF-8 |
میتوانیم برای دریافت اطلاعات پستها در وردپرس در قالب آرایههایی با فرمت JSON از دستور get استفاده کنیم:
curl -X GET -i http://yourdomain.com/wp-json/wp/v2/posts
همچنین برای اطلاعات صفحات در وردپرس:
curl -X GET -i http://yourdomain.com/wp-json/wp/v2/pages
قدم سوم:
در REST API افزونههایی عمومی وجود دارند در حالی که برخی دیگر نیاز به مجوز دارند به این معنا که شما باید به عنوان مدیر لاگین کرده باشید.
برای این مثال ما از افزونهی WordPress REST API Basic Auth که برای یادگیری REST API کمک کننده است استفاده خواهیم کرد. بعد از دانلود این افزونه برای نصب آن در داشبود وردپرس در قسمت افزونهها آن را انتخاب و گزینهی افزودن را بزنید. سپس در منو افزونههای نصب شده افزونه را فعال کنید.
حالا CLI را باز کرده و درخواست API را تایید کنید. در ادامه چگونگی استفاده از روش تایید اعتبار کاربر، با استفاده از دستور curl برای مشاهدهی پستهای منتشر نشده آورده شده است:
curl -X GET –user username:password -i http://yourdomain.com/wp- json/wp/v2/posts?status=draft
curl -X GET –user username:password -i http://yourdomain.com/wp- json/wp/v2/posts?status=draft |
مقاله پییشنهادی : آموزش پلاگین نویسی در وردپرس
قدم چهارم :
تمام پستهای خود را لیست کنید:
curl -X GET -i http://yourdomain.com/wp-json/wp/v2/posts |
شناسهی پست موردنظر را انتخاب کنید:
curl -X GET -i http://yourdomain.com/wp-json/wp/v2/posts/<ID> |
این دستور میتواند برای هر شناسهای مانند پست یا صفحه مورد استفاده قرار گیرد.
قدم آخر آموزش rest api در وردپرس
حال میتوانیم پست دلخواهی را که انتخاب کردیم را آپدیت کنیم:
curl -X POST –user username:password http://yourdomain.com/wp-json/wp/v2/posts/PostID -d ‘{“title”:”My New Title”}’ |
برای تأیید این تغییرات جدید، دوباره پست را انتخاب کنید و دستور زیر را اجرا کنید:
curl -X GET -i http://yourdomain.com/wp-json/wp/v2/posts/PostID |
به همین سادگی توانستیم با استفاده از REST API در وردپرس ویرایشهای اداری انجام دهیم.