نحوه کارکرد API ها چجوریه؟
با سلام
مدتی است که در حوزه API ها کار می کنم، سوالی که برام مطرح هستش اینه که می تونیم API رو به دو قسمت تبدیل کنیم:
1- "قسمتی که در حقیقت یک سری کدهایی هستند که با اجرا شدن اون ها و یا کامپایل شدن اون ها، یک سری درخواست ها بر بستر HTTP به طرف سرور فرستاده میشن. در حقیقت وقتی در اینترنت و همه جاهای دیگه از API صحبت میشه منظور در حقیقت همین کد ها هستن" آیا این حرف درسته؟
2- "قسمتی که در سرور قرار داره و کارش کنترل و مدیریت همون درخواست هایی هست که از طرف اون کلاینت ها داره میاد که می تونیم به سروری که این "قسمت" روش قرار داره API Server بگیم"
8 پاسخ
ببخشید بحث طولانی شد.
اون قدر که لازم باشه فهمیدم اما در عین حال:
فرض کنید یه سرور یه نرم افزار روی خودش داره (کدهای روی سرور) که با یه زبان برنامه نویسی خاص مثلا C# نوشته شدن. حالا فرض کنین ما میایم و یه نرم افزار با یه زبان برنامه نویسی دیگه مثلا Python می نویسیم به طوری که این نرم افزار میاد تحت یک پروتکل خاص (مثلا HTTP)، یه سری داده از سرور درخواست میکنه و استفاده می کنه. به این ترتیب آیا ما این وسط به یه API نیاز داریم؟
خواهش میکنم
خیر سرچ گوگل API نیست بلکه یک برنامه هست که تحت وب اجرا میشه و شما دارید از این برنامه استفاده میکنید درست مثل همین توسینسو.
یک سری API ها داره گوگل برای استفاده تا حدودی:
https://developers.google.com/custom-search/v1/overview
قسمتی از این SDK در واقع شامل API میشه.
SDK یک سری ابزارها داره که میاد کار شمارو راحت تر میکنه, مثلا تو حالت عادی این وبسایت به شما API ارسال پیامک میداد و خودتون باید کلاس ها یا متدهایی برای کار با این API پیاده سازی میکردید حالا SDK با ابزارهایی که براش فراهم شده کار شمارو راحت تر میکنه و نیاز هست که SDK برای هر زبان برنامه نویسی مجزا طراحی بشه مثل API نیست که با یک API همه زبان های برنامه نویسی بتونند از اون استفاده بکنن. میتونید یکجور کتابخانه در نظر بگیرید SDK رو
API یک رابط هست شما بهش درخواست میدی در ازای ورودی های اون درخواست یک خروجی به شما میده این خروجی میتونه اطلاعات دیتابیس باشه یا میتونه یه عملیاتی انجام بشه و نتیجه برگردانده بشه.
بله در این صورت نیاز به API هست تا ارتباط این دو امکان پذیر بشه.
ممنون
الان اون سایت اومده و یه سری sdk به من داده تا در پروژه ای که با php کار می کنم از اونا استفاده کنم وبتونم پیامک بفرستم. آیا این کدها خودشون api محسوب میشن یا قسمتی از api?
خب هدف این دو قسمت کردن چی هست؟
سلام
ببینین من چند وقته دارم با یه سایت ایرانی کار میکنم که میتونی با استفاده از اون به دیگران پیامک بفرستید و یا اگه بقیه براش فرستادن اونا رو دریافت می کنه. سوال من در وهله اول اینه که این وبسایت که یه شماره مجازی به شما اختصاص میده و شما روی اون ارسال و دریافت دارین، آیا یک نوعی api server محسوب میشه؟ (منظورم سرور این سایت هستش) و یا نه این وبسایت یک web servise هستش و یا هر دو؟
ممنون
ببینید خود وب سرویس یک نوع API هست, کلا API مثل یک پل هست که بین دو پلتفرم یا دو نرم افزار ارتباط برقرار میکنه و این امکان رو میده که این دو برنامه با یه زبان مشترک باهمدیگه ارتباط برقرار کنند کما اینکه اصلا تکنولوژی های ساخت این دوتا برنامه متفاوت باهم باشه, برای مثال یک کارت گرافیک میتونه با یک سخت افزار دیگه از طریق API ارتباط برقرار بکنه یا یک اپلیکیشن با یک سرور ارتباط داشته باشه.
حالا امروزه یک نوع API که به شکل گسترده استفاده میشه وب سرویس ها هستد که API هایی بر بستر وب هستند.
حالا سایتی که شما میگید اگر فقط داخل خود وبسایت میتونید sms ارسال کنید که خب اینجا وب سرویس یا API ایی وجود نداره صرفا یک برنامه نوشته شده که داره کار ارسال sms رو انجام میده البته شاید هم یک وبسایت دیگری وجود داره که این وبسایت داره با استفاده از وب سرویس اون وبسایت sms ارسال میکنه نحوه پیاده سازیش رو نمیشه متوجه شد به راحتی.
اما اگر این وبسایت به شما API میده تا بتونید داخل برنامه های خودتون هم sms ارسال کنید اینجا اینکار با استفاده از وب سرویس و API انجام میشه.