API چیست و برای چیست؟ API چیست استفاده از api

احتمالاً اصطلاح "API" را دیده اید. سیستم عامل، مرورگر وب و به روز رسانی برنامه ها اغلب API های جدیدی را برای توسعه دهندگان اعلام می کنند. اما API چیست؟

رابط برنامه نویسی برنامه

اصطلاح API مخفف است و مخفف "Application Programming Interface" است.

API مانند منوی یک رستوران است. منو شامل لیستی از غذاهایی است که می توانید سفارش دهید و همچنین توضیحی درباره هر غذا. وقتی مشخص می‌کنید که کدام آیتم‌های منو را می‌خواهید، آشپزخانه رستوران این کار را انجام می‌دهد و غذاهای آماده را در اختیار شما قرار می‌دهد. شما دقیقاً نمی دانید رستوران این غذا را چگونه تهیه می کند و نیازی به تهیه آن ندارید.

به همین ترتیب، API عملیات های بسیاری را ارائه می دهد که توسعه دهندگان می توانند از آنها استفاده کنند، و همچنین شرحی از آنچه انجام می دهند. توسعه دهنده نیازی به دانستن نحوه ایجاد یک سیستم عامل ندارد و کادر محاوره ای Save As نمایش داده می شود. آنها فقط باید بدانند که برای استفاده در برنامه در دسترس است.

این یک استعاره کامل نیست زیرا توسعه دهندگان ممکن است مجبور باشند داده های API خود را برای به دست آوردن نتیجه ارائه دهند، بنابراین شاید بیشتر شبیه یک رستوران شیک باشد که در آن می توانید برخی از مواد تشکیل دهنده خود را که آشپزخانه با آنها کار می کند ارائه دهید.

APIها به توسعه دهندگان این امکان را می دهند که با استفاده از تزریق پلتفرم برای انجام کارهای مهم در زمان خود صرفه جویی کنند. این به کاهش مقدار کدی که توسعه می‌دهید کمک می‌کند و همچنین به ایجاد یکپارچگی بین برنامه‌های کاربردی در همان پلتفرم کمک می‌کند. API ها می توانند دسترسی به منابع سخت افزاری و نرم افزاری را کنترل کنند.

API ها زندگی را برای توسعه دهندگان آسان تر می کنند

فرض کنید می خواهید یک اپلیکیشن برای آیفون توسعه دهید. سیستم عامل اپل iOSمانند هر سیستم عامل دیگری، تعداد زیادی API را برای شما فراهم می کند.

برای مثال، اگر می‌خواهید یک مرورگر وب برای نمایش یک یا چند صفحه وب تعبیه کنید، نیازی نیست مرورگر وب خود را از ابتدا فقط برای برنامه خود کدنویسی کنید. شما
می توانید از WKWebView API برای جاسازی یک مرورگر وب WebKit (Safari) در برنامه خود استفاده کنید.

اگر می خواهید از آن عکس یا فیلم بگیرید دوربین های آیفون، نیازی نیست رابط دوربین خود را بنویسید. می توانید از Camera API برای جاسازی دوربین آیفون در برنامه خود استفاده کنید. اگر API وجود نداشت، توسعه دهندگان برنامه باید نرم افزار دوربین خود را بنویسند و ورودی ها را تفسیر کنند سخت افزاردوربین ها اما توسعه دهندگان سیستم عاملاپل تمام این کار سخت را انجام داده است تا توسعه دهندگان می توانند به سادگی از API دوربین برای جاسازی دوربین استفاده کنند و سپس به نوشتن برنامه خود ادامه دهند. و هنگامی که اپل API دوربین را بهبود می بخشد، همه برنامه هایی که از آن استفاده می کنند به طور خودکار از این بهبود بهره می برند.

این برای همه پلتفرم ها صدق می کند. به عنوان مثال، آیا می خواهید یک جعبه محاوره ای در ویندوز ایجاد کنید؟ یک API برای این وجود دارد. آیا می خواهید از احراز هویت اثر انگشت در اندروید پشتیبانی کنید؟ یک API برای این کار وجود دارد، بنابراین لازم نیست هر سنسور اثر انگشت هر سازنده اندروید را آزمایش کنید. توسعه دهندگان مجبور نیستند بارها و بارها چرخ را دوباره اختراع کنند.

API ها دسترسی به منابع را کنترل می کنند

API ها همچنین برای کنترل دسترسی به دستگاه ها و ویژگی های سخت افزاری استفاده می شوند نرم افزار، که ممکن است برنامه مجوز استفاده از آن را نداشته باشد. به همین دلیل است که API ها اغلب نقش مهمی در امنیت دارند.

به عنوان مثال، اگر تا به حال از یک وب سایت بازدید کرده اید و پیامی در مرورگر خود مشاهده کرده اید که وب سایت مکان دقیق شما را درخواست می کند، آن وب سایت در تلاش است از API مکان جغرافیایی در مرورگر وب شما استفاده کند. مرورگرهای وب API هایی ارائه می دهند تا توسعه دهندگان وب دسترسی به موقعیت مکانی شما را آسان کنند - آنها به سادگی می توانند بپرسند "کجا هستی؟" و مرورگر کار سخت دسترسی به GPS یا نزدیکی را انجام می دهد. شبکه های وای فایبرای پیدا کردن مکان فیزیکی خود

با این حال، مرورگرها نیز این اطلاعات را از طریق یک API ارائه می کنند زیرا دسترسی به آن قابل کنترل است. هنگامی که یک وب سایت می خواهد به موقعیت مکانی دقیق شما دسترسی پیدا کند، تنها راه برای دریافت آن از طریق Location API است. و هنگامی که یک وب سایت سعی می کند از آن استفاده کند، شما - کاربر - می توانید درخواست را مجاز یا رد کنید. دسترسی به منابع سخت افزاری، مانند حسگر GPS، تنها از طریق یک API امکان پذیر است، بنابراین مرورگر می تواند دسترسی به سخت افزار را کنترل کرده و برنامه ها را محدود کند.

همین اصل برای سیستم عامل های موبایل مدرن مانند iOS و Android، که در آن برنامه های موبایلدارای مجوزهایی هستند که می توانند توسط کنترل دسترسی API اعمال شوند. برای مثال، اگر برنامه‌نویسی سعی کند از طریق API دوربین به دوربین دسترسی پیدا کند، می‌توانید درخواست مجوز را رد کنید و برنامه نمی‌تواند به دوربین دستگاه شما دسترسی پیدا کند.

سیستم‌های فایلی که از مجوزها استفاده می‌کنند، مانند ویندوز، مک و لینوکس، همان مجوزهایی را دارند که توسط API اعمال می‌شود. سیستم فایل. یک برنامه معمولی دسترسی مستقیم به هارد درایو فیزیکی خام ندارد. در عوض، برنامه باید از طریق یک API به فایل ها دسترسی داشته باشد.

API ها برای برقراری ارتباط بین سرویس ها استفاده می شوند

API ها به دلایل دیگری نیز مورد استفاده قرار می گیرند. به عنوان مثال، اگر تا به حال یک شیء نقشه گوگل را دیده باشید که در یک وب سایت تعبیه شده است، آن وب سایت از Google Maps API برای جاسازی آن نقشه استفاده می کند. Google چنین API هایی را برای توسعه دهندگان وب ارائه می دهد، که سپس می توانند از API ها برای جمع آوری اشیاء پیچیده درست در وب سایت خود استفاده کنند. اگر چنین API هایی وجود نداشته باشند، توسعه دهندگان ممکن است نیاز داشته باشند نقشه های خود را ایجاد کنند و داده های نقشه خود را ارائه دهند تا بتوانند یک نقشه تعاملی کوچک را در یک وب سایت میزبانی کنند.

و از آنجایی که این یک API است، Google می‌تواند دسترسی به Google Maps را در وب‌سایت‌های شخص ثالث کنترل کند، و اطمینان حاصل کند که آنها به‌جای تلاش برای جاسازی تصادفی چارچوبی که وب‌سایت نشان می‌دهد، از آن به روشی ثابت استفاده می‌کنند. نقشه های گوگل، مثلا.

این در مورد بسیاری از خدمات مختلف آنلاین صدق می کند. API هایی برای درخواست ترجمه متن از آن وجود دارد مترجم گوگلیا نمایش نظرات یا توییت های فیس بوک از توییتر در وب سایت.

استاندارد OAuth همچنین تعدادی API را تعریف می کند که به شما امکان می دهد از طریق سرویس دیگری مانند استفاده از اعتبار ورود به سایت وارد سایت شوید. پست های فیس بوک، گوگل یا توییتر برای ورود به یک وب سایت جدید بدون ایجاد وب سایت جدید حسابکاربر فقط برای این سایت APIها قراردادهای استانداردی هستند که نحوه تعامل توسعه دهندگان با یک سرویس و نوع محصولی را که توسعه دهندگان باید انتظار دریافت آن را داشته باشند، تعریف می کنند.

اگر این مقاله را خوانده باشید، درک بهتری از چیستی API خواهید داشت. در نهایت، نیازی نیست که بدانید API چیست مگر اینکه یک توسعه دهنده باشید. اما، اگر می‌بینید که یک پلتفرم یا سرویس نرم‌افزاری، APIهای جدیدی را برای سخت‌افزار یا سرویس‌های مختلف اضافه کرده است، استفاده از چنین ویژگی‌هایی برای توسعه‌دهندگان آسان‌تر است.

مزایای:

انواع

  • عودت. بنا به درخواست برنامه شخص ثالثهر روشی با پارامترهای داده شدهسرور اطلاعات درخواستی را در قالب خاصی ارائه می دهد.
  • تغییر می کند. کلاینت برخی از عملکردهای سرور را فراخوانی می کند که اطلاعات جدیدی را وارد کرده یا تنظیمات خاصی را روی آن تغییر می دهد.

Yandex.Direct API

API برای ارتقای وب سایت موثر است.

  1. بر اساس آن، توسعه دهندگان می توانند برنامه هایی ایجاد کنند که به طور مستقیم با سرویس تعامل داشته باشند موتور جستجو. چنین برنامه‌هایی به تبلیغ‌کنندگان این امکان را می‌دهد که به‌طور انعطاف‌پذیر کمپین‌های بزرگ را مدیریت کنند، گزارش‌های آماری را در مورد هر یک از آنها دریافت کنند و بودجه را به‌طور دقیق پیش‌بینی کنند.
  2. آژانس های تبلیغاتی با استفاده از Direct API می توانند کل لیست مشتریان، مشتریان - نمایندگان خود را مشاهده کنند.
  3. اگر عبارات خاصی که برای بهینه‌سازی موتور جستجو استفاده می‌شوند، CTR پایینی دارند تبلیغات متنی، نمایش آنها می تواند به طور خودکار غیرفعال شود. در سایت‌های موضوعی، می‌توانید نرخ‌ها را از طریق API تنظیم کنید، اهداکنندگان خاصی را می‌توان حذف کرد.
  4. Yandex.Direct API دارای یک رابط SOAP است، به این معنی که طیف گسترده ای از زبان های برنامه نویسی را برای ایجاد برنامه ها فراهم می کند. این پروتکل توسط زبان هایی مانند Perl، Java، Python و غیره پشتیبانی می شود. همچنین می توان داده ها را با فرمت JSON رد و بدل کرد.

اگر حتی از راه دور در کنار صنعت توسعه وب کار می کنید، می توانید 100٪ مطمئن باشید که این سه حرف شرم آور را خواهید شنید: API.

در مورد آنها، گفتگوها بین نواب ها و کارشناسان پراکنده است:

"چرا باید بکنم تماس API? آیا او شماره ای دارد؟"

"یک تماس ساده با این API شخص ثالث شما را به آنجا می رساند."

ما یک API RESTful برای شما ایجاد خواهیم کرد. مطمئن شوید که شما سیستم جدیدبا سایر خدمات به خوبی کار می کند."

اگرچه ممکن است API ها در ابتدا ترسناک به نظر برسند، اما می توانند زندگی شما را به عنوان یک توسعه دهنده تغییر دهند.

برای چی؟ خب یاد گرفتن استفاده صحیح API ها می توانند گردش کار توسعه را ساده، تسریع و افزایش دهند. ایجاد یا ادغام APIها مزایای قابل توجهی هم برای مشتریان و هم برای شما به همراه دارد.

به عنوان توسعه دهندگان، اغلب این توصیه را می شنوید که "چرخ را دوباره اختراع نکنید":

شوخی:
توصیه عاقلانه: چرخ را دوباره اختراع نکنید
برنامه نویس: باشه
هرگز دوباره کد خود را ننویسید

جدا از شوخی، APIها نقش مهمی در جلوگیری از اختراع مجدد چرخ دارند. در Snipcart، ما قویاً معتقدیم که درک اصول API یک مهارت کلیدی برای توسعه دهندگان وب امروزی است. در این پست ما به شما در انجام این کار کمک خواهیم کرد. در نظر خواهیم گرفت:

مزایای استفاده از API چه نوع API واقعا وجود دارد نمونه های عملی استفاده از API

خوب، آیا زمان آن نرسیده است که در آن شیرجه بزنید؟

مزایای API ها: چرا از آنها استفاده کنیم؟

یکی از اولین ها، بیشتر نقاط عطفدر حرفه من به عنوان یک برنامه نویس، درک درستی از API وجود داشت.

من هنوز هر روز از آنها استفاده می کنم.

قبل از ورود به جزئیات، اجازه دهید ابتدا شما را متقاعد کنم که درک API ارزش وقت شما را دارد.

زیرا یادگیری استفاده از API کارایی توسعه شما را بسیار افزایش می دهد.

اول، به شما امکان می دهد از یک موجود از قبل استفاده کنید منطقیا قطعات، که لازم نیست خودتان بنویسید. بعضی چیزها را ممکن است نتوانید خودتان بنویسید! بنابراین، به منظور صرفه جویی در زمان ارزشمند، به عنوان یک توسعه دهنده، داشتن ایده ای از ظاهر API بسیار مهم است.

دوم، بسیاری از مشکلات توسعه ای که با آنها روبرو خواهید شد قبلاً توسط شخص دیگری قبل از شما حل شده است. اینها به هر شکلی که باشند راه حل های موجود(FaaS، کتابخانه ها، سرویس های وب، SDK ها، API های محتوا و غیره) به احتمال زیاد برای تعامل با آنها به یک API نیاز خواهید داشت.

بنابراین API چیست؟

خوب، تعریف رسمی و ترسناک این است:

که در برنامه نویسی کامپیوتررابط برنامه نویسی کاربردی (API) مجموعه ای از تعاریف برای روال ها، پروتکل ها و ابزارهایی برای ایجاد نرم افزار کاربردی است. به طور کلی، مجموعه ای از روش های ارتباطی به خوبی تعریف شده بین مختلف است اجزای نرم افزار. یک API خوب توسعه را آسان تر می کند برنامه کامپیوتری، تمام بلوک های ساختمانی را فراهم می کند که سپس توسط برنامه نویس مونتاژ می شود.

سخت است، نه؟ بیایید نثر آکادمیک را یک درجه پایین بیاوریم. در اینجا یک تعریف دوستانه از home API آورده شده است:

به زبان ساده، یک API یک رابط را برای تعامل با منطق خود اعلام می کند.بدون اینکه بدانیم در داخل چه خبر است. این تعریف را می توان برای هر زبان، پروتکل یا محیطی که در آن هستید اعمال کرد، به شرطی که در آن اتفاق بیفتد سطح برنامه(بیشتر در این مورد در زیر).

برای روشن کردن APIها، بیایید آنچه را که نیستند فهرست کنیم:

    یک API لزوما یک سرویس خارجی نیست. به عنوان مثال، می توانید کتابخانه ها را مستقیماً در راه حل خود قرار دهید یا از آنها از طریق یک API استفاده کنید.

    API فقط یک رابط نیست. هم مشخصات/فرمت و هم پیاده سازی است.

    API یک GUI (رابط کاربری گرافیکی) نیست. این تعامل در سطح گرافیکی انجام نمی دهد. صرفاً در سطح نرم افزار کار می کند، یا از طریق یک زبان برنامه نویسی یا از طریق یک پروتکل ارتباطی.

API نیز یک قلاب وب نیست. اگر در درک تفاوت بین این دو مشکل دارید، در اینجا مقدمه ای برای وب هوک ها آورده شده است.

انواع مختلف API ها

همه APIها یکسان ایجاد نمی شوند.

اگرچه آنها اساساً هدف مشترکی دارند، برخی بهتر از دیگران به آن دست می یابند. از آنجایی که قرار است این یک مقدمه ساده باشد، من وارد این موضوع نمی شوم که چه چیزی API را بهتر از دیگران می کند. با این حال، به خاطر داشته باشید که افراد رویکردهای متفاوتی برای ساختن API دارند. اگر به این موضوع علاقه دارید، «الگوهای طراحی API» و «پارادایم های API» را در گوگل جستجو کنید. یا فقط با این مقاله سطح ابتدایی مرتب شروع کنید https://translate.googleusercontent.com/translate_c?depth=1&rurl=translate.google.ru&sl=auto&sp=nmt4&tl=ru&u=https://blog.cloudobjects.io/api-design / 2017/04/10/api-design-paradigms/&xid=17259,15700019,15700186,15700190,15700248,15700253&usg=ALkJrhg_fNGlwZoGu4xT. :)

هدف از API آسان کردن زندگی شما به عنوان یک توسعه دهنده است. چگونه این کار را انجام می دهند؟ با ترکیب مجموعه‌ای از ویژگی‌ها/ویژگی‌ها و افشای آن ویژگی‌ها از طریق نقاط پایانی (معمولاً الگوهای URL که برای تعامل با یک API استفاده می‌شوند). این نقاط پایانی تنها راه برای تعامل با هر API هستند. هر نقطه پایانی فرمت خاصی برای درخواست ها و پاسخ های خود خواهد داشت - معمولاً این قالب را در اسناد API خواهید یافت.

نقاط پایانی می تواند باشد توابع سادهیا شامل بسیاری از توابع است که API های دیگر را فراخوانی می کند و غیره. تنها نکته مهماینجاست که منطق اصلی این توابع کاملاً انتزاع شده است. برای استفاده از آنها به هیچ دانشی از آنچه در داخل آنها می گذرد نیاز ندارید. تا زمانی که از فرمت صحیح استفاده می کنید، باید بتوانید از آنها استفاده کنید، که روشی فانتزی برای استفاده از بخش هایی از آنها از داخل برنامه است.

به طور خلاصه، یک API مانند هر رابط دیگری است: یک سوئیچ نور چراغ را روشن می کند، چه بلد نباشید جریان های الکتریکی(یا در جوانی فهمیدم که باید قبض برق را بپردازی تا کار کند، اما این داستان دیگری است.)

نحوه استفاده از API: مثال های عملی

خواندن و درک اسناد API

از اسناد می توان دریافت که هر تابع شی توضیح می دهد که فرمت ورودی باید چه باشد (تعداد، آرایه اعداد و غیره) و فرمت خروجی را توصیف می کند. البته توجه داشته باشید که در مورد منطق اجرای این توابع چیزی ذکر نشده است. به عنوان مثال، اگر کنسول توسعه دهنده و Math.sqrt را اجرا کنید (بدون اجرای تابع)، چیزی شبیه به ƒ sqrt() ( ) دریافت خواهید کرد. این روح API است: چه یکی از APIهای سیستم عامل خود را صدا کنید یا یک وب API، این اصول صادق خواهند بود.

موارد استفاده پایه API

هزاران کار برای انجام دادن با ارائه دهندگان محبوب API وجود دارد. به عنوان مثال، Google Maps API اغلب برای بهبود تجربه کاربر با داده ها بر اساس نمایش زمان واقعی و علائم ترافیک استفاده می شود. Twitter API، یکی دیگر از ابزارهای عالی، می تواند برای فیلتر کردن و نمایش توییت های هدفمند در زمان واقعی استفاده شود.

اکنون، اگر وبلاگ ما را دنبال می‌کنید، گمان می‌کنم که بیشتر از هر چیز دیگری به Web API علاقه دارید. بنابراین بیایید به موارد استفاده خاص بپردازیم. لطفاً توجه داشته باشید که ما از Postman در نمونه های خود استفاده خواهیم کرد. البته این Rest Client مربوط به محیط وب است اما معمولاً چنین ابزارهایی در محیط های دیگر نیز وجود دارد. قبل از شروع بازی با آن، ارزش دارد به ابزارهای ارائه شده برای یک محیط معین نگاهی بیندازید. می تواند در زمان شما صرفه جویی زیادی کند.

اگر می خواهید ما را دنبال کنید، باید مشتری Postman را دانلود کنید.https://www.getpostman.com/

استفاده از API عمومی برای بازیابی داده ها

مثال اول ما بسیار ساده است، اما هنوز جالب تر از مثال ریاضی است.

ما از Dog API استفاده خواهیم کرد! نه تنها یک API سرگرم کننده است، بلکه نیازی به احراز هویت نیز ندارد. همچنین، این یک API HTTP REST است، به این معنی که یک API وب است. از آنجایی که به آن محیط متصل است، از ما می‌خواهد که برخی از مشخصات پروتکل را مطابقت دهیم: در این مورد، افعال HTTP (GET، PUT، POST، DELETE و غیره). در مثال ما آن را ساده نگه می داریم و فقط از فعل GET استفاده می کنیم. در هر صورت، API اجازه نمی دهد هیچ چیز دیگری پشتیبانی شود. اکثر API های عمومی فقط به شما اجازه مصرف داده ها را می دهند، نه اینکه آن ها را منتشر کنید، مانند فعل GET.

بیایید پستچی را روشن کنیم و ببینیم چه شکلی است رابط کاربری.

رابط کاربری من از یک تم تیره استفاده می کند، بنابراین ممکن است کمی متفاوت از تم شما به نظر برسد.

ممکن است در ابتدا اطلاعات زیادی برای هضم وجود داشته باشد، بنابراین اجازه دهید با VERB و URL شروع کنیم.

فعل پیش‌فرض باید GET باشد، بنابراین می‌توانید آن را به همین شکل رها کنید و URL زیر را وارد کنید: https://dog.ceo/api/breeds/list/all

روی "ارسال" کلیک کنید و تمام! شما باید یک پاسخ با داده های مربوطه دریافت کنید. وویلا! شما به تازگی اولین تماس API خود را انجام داده اید. حال برای این مثال از هیچ یک از داده های دریافتی استفاده نخواهیم کرد. اما شما یک ایده دارید: می توانید نژادهای مختلف سگ را به کاربر خود نشان دهید و اگر روی آن کلیک کرد، تصویری از آن نژاد را نمایش دهید.

می توانید با مسیرهای مختلف در اسناد آنها بازی کنید تا با محیط آشنا شوید.

واقعیت جالب: این پروژه کوچک نیز منبع باز است. کد منبعبنابراین می توانید نگاهی به اینجا بیاندازید https://github.com/ElliottLandsborough/dog-ceo-api.

مدیریت احراز هویت با یک API خصوصی

در اینجا ما فقط از کد برای تعامل با Snipcart API https://docs.snipcart.com/api-reference/introduction استفاده می کنیم. می توانید Postman را ببندید، اما آن را در دسترس داشته باشید. استفاده از چنین ابزاری هنگام شروع با یک API خوب است.

هدف ایجاد یک ابزار ساده CLI برای ایجاد تخفیف یکباره برای خریداران خواهد بود. این تخفیف ها از طریق یک API ایجاد می شود و همه اینها منحصراً در رایانه شما انجام می شود.

یک پوشه جدید برای این پروژه ایجاد کنید، از npm init در پوشه استفاده کنید و خود را آپلود کنید ویرایشگر متن. حالا یک فایل index.js ایجاد کنید، سپس فایل package.json را باز کنید. در آن، خطوط زیر را به شی سطح بالا اضافه کنید:

"bin": ("تخفیف": "./index.js")

همچنین برای تجزیه ورودی مشتری به بسته فرمان نیاز داریم. بنابراین، دستور npm install -save را در پوشه فعلی اجرا کنید. ما همچنین از یک کتابخانه کوچک برای ایجاد شناسه ها استفاده خواهیم کرد. می توانید آن را با npm install -save shortid نصب کنید. در حالی که در حال انجام آن هستیم، اجازه دهید npm install -save request lib را نیز اجرا کنیم تا برقراری تماس های HTTP برای ما آسان تر شود. به فایل index.js خود برگردید و این کد را قرار دهید:

#!/usr/bin/env node var program = require('commander'); var shortid = require('shortid'); varrequest = require('درخواست'); function CreateDiscount()( var discount = ( نام: '20% OFF'، راه‌انداز: 'Code'، نوع: 'Rate'، نرخ: 20، maxNumberOfUsages: 1، کد: shortid.generate()) درخواست (( URL: «http://app.snipcart.com/api/discounts»، اعتبار: ( «کاربر: «YOUR_API_KEY»)، روش: «POST»، json: درست، بدنه: تخفیف)، تابع (خطا، پاسخ، متن )( console.log(body.code); )); ) program .arguments(' ') .action(function(number) ( for(var i = parseFloat(number); i > 0; i-)( CreateDiscount( ) ) )) .parse(process.argv);

در اینجا فقط روی تابع درخواست تمرکز می کنیم. در اینجا ما در حال برقراری تماس API خارجی با Snipcart هستیم. می بینید که ما متد "POST" را به متد منتقل می کنیم. این به این دلیل است که ما می خواهیم داده ها را به Snipcart API ارسال کنیم. با تعیین این روش، API عمل را به درستی ارائه می کند تا بتواند بدنه درخواستی را که حاوی داده های تخفیف است بخواند.

یک ویژگی جالب API که ما هنوز از آن استفاده نکرده ایم احراز هویت است. همه نمونه‌های دیگر ما در APIهای عمومی بودند: آنها نیازی به احراز هویت ندارند. اما در سناریوهای دنیای واقعی، بیشتر API هایی که استفاده می کنید احتمالاً به نوعی احراز هویت نیاز دارند، مانند Twitter API یا Google Maps API. این الگوی استاندارد در دنیای API است. اگر به کسی اجازه دهیم در فروشگاه خود تخفیف ایجاد کند، مشتریان ما چندان خوشحال نخواهند شد. ;)

مفاهیم احراز هویت می توانند بسیار دست و پا گیر شوند. می توانید این پست جالب را بخوانید https://translate.googleusercontent.com/translate_c?depth=1&rurl=translate.google.ru&sl=auto&sp=nmt4&tl=ru&u=http://blog.restcase.com/restful-api-authentication- مبانی /&xid=17259,15700019,15700186,15700190,15700248,15700253&usg=ALkJrhjwWO5yc6nayLpXCQkh_X95B0OZMw برای درک بهتر موضوع.

برای هدفمان، کلید API را پاس می کنیم https://translate.googleusercontent.com/translate_c?depth=1&rurl=translate.google.ru&sl=auto&sp=nmt4&tl=ru&u=https://en.wikipedia.org/wiki/Application_programming_interface_key&x =17259, 15700019,15700186,15700190,15700248,15700253&usg=ALkJrhhpSWyk-nV9379VcrY3TMcKiAdXlQ مستقیماً در سرور، و ما را شناسایی می کند! سپس می‌تواند فقط برای حساب ما درخواستی ارائه دهد.

اگر می‌خواهید برنامه کوچک ما را آزمایش کنید، می‌توانید npm install -g را در فهرست پروژه اجرا کنید و فقط تخفیف‌های x را برای ایجاد تخفیف x چند بار اجرا کنید. می توانید به پنل Snipcart خود (حساب های آزمایشی رایگان برای همیشه) بروید و مطمئن شوید که تخفیف ها به درستی ایجاد شده اند. می توانید تصور کنید که این چقدر می تواند قدرتمند باشد: اگر مجبور بودید 200 مورد از این تخفیف ها را ایجاد کنید، انجام آن از طریق رابط کاربری ما خیلی طول می کشد. با این حال، هنگامی که با نحوه عملکرد API آشنا شدید، می توان آن را در چند دقیقه انجام داد. این کد همچنین قابل استفاده مجدد است، بنابراین اگر لازم است در یک ماه همین کار را انجام دهید، خوب، شما خوب هستید!

اگر موارد استفاده خاصی برای API دارید که می خواهید در مورد آن صحبت کنید، آنها را در نظرات بنویسید. ما اضافه کردن آنها را به نقشه راه محتوای خود در نظر خواهیم گرفت! :)

افکار نهایی

من صمیمانه امیدوارم این آموزش به شما کمک کرده باشد که API ها را بهتر درک کنید و چگونه می توانید از آنها در گردش کار توسعه خود استفاده کنید.

چند نکته مهم:

  • API ها سرعت شما را افزایش می دهند و گزینه های توسعه شما را گسترش می دهند. از آنها استفاده کن!
  • APIها لزوماً به اکوسیستم وب مرتبط نیستند. آنها را همه جا خواهید دید.
  • همیشه اسناد API را که می خواهید استفاده کنید به دقت بررسی کنید.
  • همیشه قبل از شروع کدنویسی، ابزارهای موجود (API یا موارد دیگر) را در اکوسیستم خود جستجو کنید.

حالا ما آخرین نمونه"تولید" آماده نیست، اما به شما ایده خوبی از آنچه ممکن است در زندگی واقعی شبیه باشد، می دهد. چیزهای زیادی وجود دارد که می‌توانیم آنها را بهبود بخشیم، مانند اجازه دادن به کاربر برای انتخاب نوع تخفیف و غیره. همچنین می‌توانیم از کدهای تولید شده برای ارسال آنها استفاده کنیم. پست الکترونیکمستقیماً در همان تابع به جای اینکه فقط آنها را ثبت کنید. اگر نیازهای بیشتری به ابزارهای تخفیف داشتیم، می توانستیم خود API بنویسیم. از آنجا، حتی اگر بخواهیم می‌توانیم یک رابط کاربری ایجاد کنیم که با API ما تعامل داشته باشد. به هر حال امیدوارم الان به این ایده رسیده باشید! :)

پس مرحله بعدی چیست؟ مانند تقریباً هر چیزی که در حال توسعه است، شما نیاز به کدنویسی، کدنویسی، کدنویسی و کدنویسی بیشتری دارید! این شما را با مدیریت و یکپارچه سازی API آشنا می کند. بعد از مدتی با آنها کارآمدتر خواهید شد.

و اینجاست که لذت واقعی شروع می شود.

طبق تعریف ویکی‌پدیا، API مجموعه‌ای از کلاس‌ها، رویه‌ها، توابع، ساختارها و ثابت‌های آماده است که توسط یک برنامه کاربردی (کتابخانه، سرویس) برای استفاده در موارد خارجی ارائه می‌شود. محصولات نرم افزاری. توسط برنامه نویسان برای نوشتن انواع برنامه ها استفاده می شود.

اما از آنجایی که بسیاری از چیزها در ویکی‌پدیا برای بسیاری از افراد قابل درک نیست، سعی می‌کنم با انگشتانم توضیح دهم که API چیست و معمولاً برای چه چیزی ساخته می‌شود و چگونه استفاده می‌شود.

API ها کاملاً متفاوت هستند، اما برای مثال، من موقعیتی را انتخاب کردم که در آن شبکه ای از فروشگاه ها و تنها یک پایگاه داده مشترک داریم. تصور کنید که صاحب یک برنامه وابسته هستید. برنامه وابسته طبق اصل زیر کار می کند: یک شخص در آن ثبت نام می کند برنامه های وابستهو موتور فروشگاه را می گیرد. سپس می تواند این فروشگاه را روی هاست خود قرار دهد و شروع به کار کند. اما تمام داده های این فروشگاه از پایگاه داده ما گرفته شده است، یعنی باید به هر شریک اجازه دسترسی به پایگاه داده ارزشمند خود را بدهیم. می توانید تصور کنید چقدر خطرناک است؟ پس از همه، ما باید دسترسی به پایگاه داده را از خارج باز کنیم تا همه فروشگاه های شریک بتوانند با آن کار کنند. اما اگر داده های دسترسی به دست مزاحمان بیفتد چه اتفاقی می افتد؟

اینجاست که API به ما کمک خواهد کرد. به جای دسترسی به پایگاه داده، ما به سادگی یک API ایجاد می کنیم که از طریق آن فروشگاه های شریک اطلاعات را دریافت می کنند. بنابراین، فقط اسکریپت API ما با پایگاه داده کار می کند و فروشگاه ها با این اسکریپت کار می کنند.

چگونه کار می کند؟
به عنوان مثال، یک فروشگاه درخواستی را به API ما ارسال می کند
http://ourapi.com/get_books?limit=20
و API ما می‌داند که باید فهرستی از کتاب‌ها متشکل از 20 نسخه را برگرداند، زیرا ما از پارامتر محدود برابر با 20 عبور کرده‌ایم. اسکریپت ما (API) درخواستی به پایگاه داده می‌دهد، فهرستی از کتاب‌ها را دریافت می‌کند و آنها را به ذخیره کنید (در واقع، آن را به سادگی نمایش می دهد) در یک قالب خاص. قالبی که در آن API اطلاعات را برمی گرداند می تواند کاملاً هر چیزی باشد، نکته اصلی این است که فروشگاه های ما آن را درک کنند. این می تواند JSON، یک آرایه سریالی یا XML باشد. دیگر مهم نیست، مهم این است که شما اصل را درک کنید.

مجموعه دستوراتی که API درک می کند به شما بستگی دارد. به عنوان مثال، در مورد ما، اینها می تواند دستوراتی مانند دریافت لیست کتاب ها، دریافت لیست دسته ها، دریافت کتاب های محبوب، دریافت کتاب های جدید و غیره باشد. بنابراین، حتی اگر یک مهاجم بتواند به API ما دسترسی داشته باشد، تنها کاری که می‌توانست انجام دهد این بود که فهرستی از کتاب‌ها را دریافت کند، و این هیچ تهدیدی برای پایگاه داده ما ایجاد نمی‌کند.

امیدوارم تونسته باشم توضیح بدم که API روی چی هست مثال ساده. اگر سوالی دارید، آن را در نظرات یا در انجمن بپرسید و ما خوشحال خواهیم شد که در حل آنها به شما کمک کنیم.

دیر یا زود، هر برنامه نویسی با چنین مفهومی روبرو می شود API. با این حال، هنگامی که چنین جلسه ای رخ می دهد، همه نمی دانند که چیست، چرا به آن نیاز است و چگونه از آن استفاده کنند. و در این مقاله قصد دارم این شکاف در دانش برخی از شما را پر کنم و همچنین مثالی از تمرین خود بیاورم.

API (رابط برنامه نویسی کاربردی) - این رابط برنامه نویسی کاربردی. به عبارت ساده تر، این یک مجموعه است توابع مختلف، ثابت ها، کلاس ها، فرمت های پرس و جو که می توانند در برنامه های دیگر استفاده شوند.

می توان در نظر گرفت که APIیک شی معین است که ما از اجرای آن اطلاعی نداریم، اما می توانیم از آن استفاده کنیم. به عنوان مثال، رایانه شیئی است که اجرای آن برای افراد کمی شناخته شده است، با این حال، تقریباً همه می توانند با انجام برخی اقدامات از آن استفاده کنند: تماشای یک ویدیو، گشت و گذار در اینترنت، چاپ متن و غیره. تعداد کمی از مردم می دانند که چگونه همه کار می کند، اما تقریبا همه می توانند آن را انجام دهند.

یک مثال APIاست Windows API, OpenGL API, Direct3D APIو غیره

به عنوان مثال، چندی پیش من نیز به طور مستقیم با API. من برای یک سرویس لیست پستی ثبت نام کردم SmartResponder.ru"و یک لیست پستی راه اندازی کرد که مردم شروع به مشترک شدن در آن کردند. وظیفه به شرح زیر بود: در عرض یک روز پس از اشتراک، شخص می تواند دوره ویدیویی پولی من را با تخفیف خریداری کند. از آنجایی که تمام اطلاعات مربوط به مشترکین در سرور ذخیره می شود" SmartResponder.ru"، سپس دسترسی عادی (به عنوان مثال، از طریق DB) من به این داده ها دسترسی نداشتم، اما پیاده سازی آن ضروری بود. خوب تو" SmartResponder.ru"خودت را داشته باش API، که من استفاده کردم.

در آنها یافتم APIفرمت پرس و جو برای بازیابی تاریخ اشتراک در نتیجه. در حال آمدن حلقهمن درخواست مربوطه را ارسال کردم و تاریخ اشتراک مورد نظر را برای یک خاص دریافت کردم آدرس ایمیل . بعد، پردازش استاندارد و خروجی نتیجه.