چه برنامه نویس وب باشید ، چه برنامه نویس موبایل ( اندروید یا حتی IOS ) و یا در یکی از حوزه های فرانت اند و بک اند فعالیت کرده باشید ، احتمالا عبارات REST و RESTFUL به گوشتون خورده باشه . در این مقاله میخواهیم باهم بررسی کنیم که این عبارات به چه معناست و چگونه میتوانیم از آن ها استفاده کنیم .
API چیست ؟
API یک رابط بین اپلیکیشن ها یا وبسایت های مختلفه که اجازه میده تا آنها بتوانند داده های خودشون رو بین همدیگر منتقل کنند، از داده های هم استفاده کنند و یا داده ای جدید رو ایجاد کنند.
به عنوان مثال یک اپلیکیشن قصد داره از سرویس آب و هوایی که سایت هواشناسی ایران ارائه کرده استفاده کنه . در این صورت اون اپلیکیشن می تونه API مربوط به اون سرویس رو در برنامه خودش فراخوانی کند و از آن استفاده کنه .
مثال هایی از کاربرد API
یک مثال دیگر هم اینکه حتما تابه حال برای ورود به اکانت خود در سایت های مختلف مجبور به تایید شماره موبایل خودتون شدید! یعنی سایت مورد نظر برای شما از طریق اس ام اس ، یک کد 4 رقمی میفرسته تا از درست بودن شماره موبایل شما مطمئن بشه .
این سایت ها و اپلیکیشن ها با استفاده از وب سرویس پیام رسان ، توانستند به راحتی API پیام رسان را فراخوانی کرده و به راحتی از خدمات سایت پیام رسان از قبیل ارسال پیامک صوتی ، ارسال پیامک گروهی و یا حتی ارسال پیامک از طریق پترن OTP استفاده کنند.
معماری های API
معماری های مختلفی هم برای api ارائه شده که یکی از ان ها REST است که در این مقاله درموردش بصورت کامل ولی با زبان ساده صحبت خواهیم کرد. از دیگر معماری های API میتوان به SOAP اشاره کرد.
REST چیست و چگونه آن را پیاده کنیم ؟
REST مخفف REpresentational State Transfer هست که به این معنیه که ما یک سری قوانین و قواعد داشته باشیم که باهاش به رد و بدل کردن اطلاعات در بستر شبکه ارتباطی بپردازیم. ساده تر بخوام بگم REST یه سری اصول و روشیه که اگر ما اون رو در برنامه ای که داریم رعایت کنیم ، میگوییم که این برنامه ما از قوانین rest پیروی می کنه.
در نتیجه REST نه نرم افزار است و نه زبان برنامه نویسی ؛ به این تعریف از سایت restfulapi.net دقت کنید :
REST (Representational State Transfer) is basically an architectural style of development having some principies
و اما مفاد این قرارداد چیست ؟ ما در این قسمت متن ترجمه شده را برای شما قرار دادیم که در زیر می توانید مطالعه کنید.
- نباید هیچ وضعیتی را در خود نگه داری کند.
- تمام درخواست ها باید بر بستر URI یا همان URL باشد.
- نباید هیچ گونه رمزنگاری داخلی در این برنامه وجود داشته باشد .
- هیچ سشنی نباید نگه داری شود .
- فقط بر بستر HTTP ( یا HTTPS ) باشد . یعنی نباید از FTP و یا چیز دیگری استفاده کنید .
- برای عملیات CRUD باید از دستور های get و post و put و delete استفاده کیند .
- نتایج باید بستر سبک داده ( lightweight data) برگشت داده شود همانند json یا xml و …
کسب و کار داری و میخوای تبلیغات پیامکی انبوه داشته باشی؟!
تفاوت REST با RESTFUL چیست ؟
اگر این برنامه از بخشی از قوانین REST پیروی کنه می گوییم که این web api یا برنامه REST base service است . یعنی بر پایه و طبق قوانین آن نوشته شده .
اگر آن برنامه تمام قواعد و قوانین REST را پیروی کرده باشد به آن Restful service می گوییم .
دستورات REST
همانطور که گفته شد Rest یک کنوانسیون یا قرارداد برای سرویس های http هست . پس ما از اصول ساده پروتکل http برای پشتیبانی از 4 دستور اصلی ساخت Create ، خواندن Read ، بروزرسانی Update و Delete پاک کردن داده استفاده می کنیم . همه ی این عملیات با هم CRUD Operation نامیده می شود .
اینها متد های آن (http methods) هستند :
- GET = برای گرفتن داده
- POST = برای ساختن داده
- PUT = برای آپدیت داده
- DELETE = برای پاک کردن
بررسی کامل وب سرویس REST ارسال پیامک ( مثال واقعی )
در این مثال ما بصورت کامل و جزئی وب سرویس ارسال پیامک پیام رسان را بررسی می کنیم . کاربرد این وب سرویس ارسال پیامک از طریق سایت ها و اپلیکیشن ها هست .
حالا برویم با یک مثال از دنیای واقعی این کنوانسیون REST را بررسی کنیم .
یکی از بهترین وب سرویس ارسال پیامک رایگان و بر پایه REST ارائه شده است ، توسط سامانه پیامکی پیام رسان است که در ادامه به بررسی کامل آن خواهیم پرداخت . در این مثال شما بصورت کامل درباره REST خواهید آموخت . همچنین می توانید بصورت حرفه ای از تمام متد های وب سرویس REST پیام رسان استفاده کنید . چرا که بصورت کامل تمامی متد ها را توضیح خواهیم داد .
آدرس وب سرویس REST
به آدرس زیر دقت کنید که میخواهیم نکات مهمی در رابطه به ان را را مطرح کنیم.
https://api.sms-webservice.com/api/V3
اول از همه ادرس وب سرویس میتونه با http یا https شروع بشه . این به اپلیکیشن و نیازمندی هاش بستگی داره . اگر بخواهید داده در بستری امن رد و بدل بشه باید از https استفاده کنید . بعد از پروتکل ، نام دامنه رو داریم . بعد از اون هم /api اجباری نیست ولی اکثر شرکت ها و کمپانی ها از این قرارداد برای ارائه سرویس های Restful استفاده می کنند . و اون اینه که api رو در جایی از آدرسشون قرار میدن . میتونه بعد از دامنه باشه و یا بصورت ساب دامنه هم قبل از دامنه قرار بگیرد . قانون سختی هم براش وجود نداره !
Endpoint چیست ؟
پس از آدرس کامل وب سرویس ، میتوانیم از اندپوینت های مختلفی استفاده کنیم .
یعنی کلاینت تحت این آدرس و endpoint میتونه درخواست خودشو بفرسته سمت سرور تا بتونه باهاش صحبت کنه . ما میتونیم بی نهایت endpoint برای وب سرویس پیاده سازی کنیم . در ادامه 9 متد مربوط به وب سرویس REST پیام رسان را بررسی میکنیم .
کسب و کار داری و میخوای تبلیغات پیامکی انبوه داشته باشی؟!
انواع متدهای ارسال پیامک با وب سرویس REST (انواع endpoint ها)
اندپوینت send/
متدی برای ارسال یک متن به یک یا چند شماره با متد : اين متد مربوط به ارسال پیامک مي باشد ، اين متد اين قابلیت را دارد که در يک بار فراخواني به حد اکثر 99 شماره پیام ارسال نمايد، به اين معني که نیازی نیست به ازاي هر شماره يک بار متد را فراخواني نمائید، مي توانید شماره ها را به دسته هاي 99 تايي تقسیم نموده و هر دسته را توسط يک آرايه به اين متد ارسال نمائید.
اندپوینت SendBulk/
متدی برای ارسال یک متن به یک یا چند شماره با متد post : اين متد مربوط به ارسال پیامک مي باشد ، اين متد اين قابلیت را دارد که در يک بار فراخواني به حد اکثر 99 شماره پیام ارسال نمايد، به اين معني که نیازي نیست به ازاي هر شماره يک بار متد را فراخواني نمائید، مي توانید شماره ها را به دسته هاي 99 تايي تقسیم نموده و هر دسته را توسط يک آرايه شامل شماره دریافت کننده و کد پیگیری به اين متد ارسال نمائید.
این متد بصورت post فراخوانی می شود و پارامترهای ورودی در بدنه درخواست ارسال می شوند.
اندپوینت SendMultiple/
متدی برای ارسال چند متن به چند گیرنده : اگر قصد داريد به هر گیرنده متن جداگانه اي را ارسال کنید، اين متد چاره کار شماست. با استفاده از اين متد نیازی نیست که به ازاي هر گیرنده يک بار درخواست ارسال کنید و مي توانید پیامک هاي خود را در گروه هاي 100 تايي با يک درخواست به سامانه ارسال کنید. همچنین اين متد به شما اين قابلیت را مي دهد تا به ازاي هر شماره گیرنده يک متن و شماره ارسال کننده مجزا معرفی کنید.
اندپوینت SendTokenSingle/
متدی برای ارسال به یک شماره با استفاده از الگوی تعریف شده : برای ارسال با استفاده از الگو ازاین متد می توانید استفاده نمایید، پس از تعریف الگو در سامانه و در صورت نیاز تعریف پارامترها در آن و تایید آن توسط پشتیبانی سامانه، با فراخوانی این متد، مقادیر مربوط به پارامتر ها که در متن الگو تعریف شده، جایگزین و به شماره دریافت کننده ارسال می گردد. همانطور که در درخواست مشخص است، شماره ارسال کننده وارد نمی شود و سامانه سریعترین خط خدماتی را در لحظه انتخاب و ارسال را با استفاده از آن ثبت می کند.
اندپوینت SendTokenMulti/
متدی برای ارسال یک الگو با متن های مختلف به چند شماره : اگر قصد دارین پیام هایی با متن متفاوت اما در قالب یک الگو را برای افراد مختلف ارسال نمایید، نیاز نیست متد قبل را چندین بار فراخوانی نمایید کافیست ازاین متد استفاده نمایید. متد post بوده و به ازای هر شماره دریافت کننده، لیست پارامترهای مربوط به آن دریافت کننده را نیز دریافت خواهد کرد.
اندپوینت TokenList/
متدی برای دریافت لیست الگوهای تعریف شده در پنل
اندپوینت StatusById/
متدی برای دریافت وضعیت پیام های ارسالی : زمانیکه بخواهیم پس از ارسال پیام، وضعیت پیام ارسالی را داشته باشیم، نیاز است ازاین متد استفاده نماییم، در یک درخواست می توان از وضعیت بیش از یک پیام استعلام گرفت.
اندپوینت StatusByTraceId/
متدی برای دریافت وضعیت پیام های ارسالی: زمانیکه بخواهیم پس از ارسال پیام، وضعیت پیام ارسالی را داشته باشیم، و شناسه های پیامک های ارسالی را در اختیار نداشته باشیم، می توانیم ازاین متد استفاده نماییم، در یک درخواست می توان از وضعیت بیش از یک پیام استعلام گرفت.
اندپوینت AccountInfo/
متدی برای دریافت مقدار اعتبار و لیست خطوط ارسال کننده فعال در پنل : در صورتیکه بخواهید از مقدار اعتبار باقیمانده در پنل و یا لیست خطوط فعال در پنل خود گزارشی داشته باشید، ازین متد می توانید استفاده نمایید، برای فراخوانی این متد کافیست کد شناسه پنل خود را در بدنه متد ارسال نمایید.
پارسا
26 خرداد 1402ممنون مقاله خوبی بود فقط یه سوال تو چه پروژه هایی میشه از api استفاده کرد؟
پیام رسان
28 خرداد 1402استفاده از API در پروژه های برنامه نویسی ، قوانین خاصی ندارد . اما معمولا در پروژه های بزرگ از API استفاده می شود . برخی از API ها هم هستند که در صورت نیاز قابل استفاده هستند . به عنوان مثال API ارسال پیامک پیام رسان که جهت ارسال پیامک استفاده می شود نیز از همین نمونه هستند .
مریم
26 خرداد 1402سلام عالی بود مچکرم
پیام رسان
28 خرداد 1402سلام سپاس از شما