API განმარტება. აპლიკაციის პროგრამირების ინტერფეისი

მთავარი / ბრაუზერები

Sandbox

წვევამდელი 2012 წლის 26 ნოემბერი, 13:59 საათი

რა არის API

  • კარადა *

სალამი!
ამ სტატიაში განვიხილავთ რა არის API, სად, როგორ და რისთვის გამოიყენება იგი. ჩვენ ასევე განვიხილავთ, თუ როგორ შეიძლება გამოყენებულ იქნას API თქვენს ვებ-განვითარებებში და როგორ გაამარტივებს მას ვებ პროგრამისტის ცხოვრება.

ასე რომ, დავიწყოთ განმარტებით. API (Application Programming Interface) არის პროგრამირების ინტერფეისი, აპლიკაციების შექმნის ინტერფეისი. უფრო აზრზე მკაფიო ენაზე, მაშინ API არის მზა კოდი, რათა პროგრამისტს ცხოვრება გაუადვილოს. API შეიქმნა ისე, რომ პროგრამისტს შეეძლო რეალურად გაეადვილებინა განაცხადის დაწერა მზა კოდის გამოყენებით (მაგალითად, ფუნქციები). კარგად ცნობილი jQuery, დაწერილი JavaScript-ში, ასევე არის ერთგვარი API. თუ კონკრეტულად გადავხედავთ ამ მაგალითს, jQuery აადვილებს კოდის დაწერას. რა შეიძლება გაკეთდეს ჩვეულებრივი JavaScript ინსტრუმენტების გამოყენებით 30 სტრიქონში, იწერება 5-6-ში jQuery-ის გამოყენებით. თუ გადავხედავთ API-ებს ზოგადად, ჩვენ შეგვიძლია ვიპოვოთ მრავალი სერვისი, რომელიც უზრუნველყოფს განვითარების გადაწყვეტილებებს. დღეს ყველაზე ცნობილია კოდი.google.com სერვისი, რომელიც გთავაზობთ ორმოცდაათამდე სხვადასხვა API-ს! ეს მოიცავს ინტერფეისს Android აპლიკაციების შესაქმნელად, სხვადასხვა API-ებს AJAX-თან მუშაობისთვის და სხვადასხვა აპლიკაციის API-ებს, რომლებიც მარტივად შეიძლება მორგებული იყოს თქვენი სურვილისამებრ.

ბოლოს და ბოლოს, აქვს თუ არა აზრი კოდის დაწერას? რატომ იმუშაოთ უკვე შექმნილზე? აზრი აქვს დათმობას? უფასო გადაწყვეტილებები(და ფაქტობრივად, დან უფასო დახმარება) ვებ დეველოპმენტში? თუ თქვენ უპასუხეთ "არა" ყველა ამ კითხვას, მაშინ ჩათვალეთ, რომ გესმით API-ს არსი.

მაგრამ ასევე მინდა დაჯავშნა. დამწყებ დეველოპერებმა არ უნდა გამოიყენონ ნახევრად მზა გადაწყვეტილებები, რადგან ისინი ვერ გაუმკლავდებიან მომავალს რეალური გამოწვევა. ამიტომ, თუ თქვენ ხართ დამწყები ვებ პროგრამისტი, არ გამოიყენოთ ნახევარფაბრიკატები! ისწავლეთ ფიქრი საკუთარი თავით, შექმენით სხვადასხვა ალგორითმები პროგრამირების არსის გასაგებად. მე ასევე ვამბობ, უკვე ყველას მივმართავ, რომ API არ არის მზა გადაწყვეტილებები, ეს არის გარემო, ინტერფეისი თქვენი პროექტების შესაქმნელად. მაღაზიიდან გაყინულ კატლეტებს არ მიირთმევთ არა? ჯერ მათ შეწვით, არა? ეს ანალოგია ძალიან ნათლად ასახავს API-ს არსს.

ზოგადად გითხარით რა არის API, სად და როგორ გამოიყენება და რაც მთავარია რატომ. გისურვებთ ვებ პროგრამირების სასიამოვნო სწავლას და მისი უფრო დიდი სიღრმის გააზრებას!

ტეგები: api

ეს სტატია არ ექვემდებარება კომენტარს, რადგან მისი ავტორი ჯერ არ არის საზოგადოების სრულუფლებიანი წევრი. ავტორთან დაკავშირებას მხოლოდ მას შემდეგ შეძლებთ, რაც ის მიიღებს

ადრე თუ გვიან, ნებისმიერ პროგრამისტს აწყდება ისეთი კონცეფცია, როგორიცაა API. თუმცა, როდესაც ასეთი შეხვედრა ხდება, ყველამ არ იცის რა არის ეს, რატომ არის საჭირო და როგორ გამოიყენოს იგი. და ამ სტატიაში ვაპირებ შევავსო ეს ხარვეზი ზოგიერთი თქვენგანის ცოდნაში და ასევე მოვიყვან მაგალითს ჩემი პრაქტიკიდან.

API (აპლიკაციის პროგრამირების ინტერფეისი) - ეს აპლიკაციის პროგრამირების ინტერფეისი. უფრო მარტივი სიტყვებით, ეს არის სხვადასხვა ფუნქციების, მუდმივების, კლასების და შეკითხვის ფორმატების ნაკრები, რომელიც შეიძლება გამოყენებულ იქნას სხვა პროგრამებში.

შეიძლება ჩაითვალოს რომ API- ეს არის გარკვეული ობიექტი, რომლის განხორციელება არ ვიცით, თუმცა შეგვიძლია გამოვიყენოთ. მაგალითად, კომპიუტერი არის ობიექტი, რომლის განხორციელებაც ძალიან ცოტამ იცის, თუმცა, თითქმის ყველას შეუძლია მისი გამოყენება გარკვეული მოქმედებების შესასრულებლად: ვიდეოების ყურება, ინტერნეტში სერფინგი, ტექსტის დაბეჭდვა და ა.შ. ცოტამ თუ იცის როგორ მუშაობს ეს ყველაფერი, მაგრამ თითქმის ყველას შეუძლია ამის გაკეთება.

მაგალითი APIარის Windows API, OpenGL API, Direct3D APIდა ასე შემდეგ.

მაგალითად, არც ისე დიდი ხნის წინ პირდაპირ შევხვდი API. მე დავრეგისტრირდი საფოსტო სიის სერვისზე" SmartResponder.ru"და დაიწყო საინფორმაციო ბიულეტენი, რომლის გამოწერა დაიწყო ხალხმა. დავალება ასეთი იყო: გამოწერიდან 24 საათის განმავლობაში, ადამიანს შეუძლია შეიძინოს ჩემი ფასიანი ვიდეო კურსი ფასდაკლებით. ვინაიდან ყველა ინფორმაცია აბონენტების შესახებ ინახება სერვერზე" SmartResponder.ru", შემდეგ ნორმალური წვდომა (მაგალითად, მეშვეობით DB) მე არ მქონდა წვდომა ამ მონაცემებზე, მაგრამ საჭირო იყო მისი განხორციელება. საბედნიეროდ, " SmartResponder.ru"გქონდეს შენი საკუთარი API, რომელიც გამოვიყენე.

მათში ვიპოვე APIმოთხოვნის ფორმატი, რომ მიიღოთ გამოწერის თარიღი შედეგად. შემდგომი მეშვეობით cURLმე გავაგზავნე შესაბამისი მოთხოვნა და მივიღე საჭირო გამოწერის თარიღი კონკრეტულისთვის ელექტრონული ფოსტის მისამართები. შემდეგი არის სტანდარტული დამუშავება და შედეგის გამოტანა.

თქვენ ალბათ გინახავთ ტერმინი "API". ოპერაციული სისტემის, ვებ ბრაუზერისა და აპლიკაციების განახლებები ხშირად აცხადებენ ახალ API-ებს დეველოპერებისთვის. მაგრამ რა არის API?

აპლიკაციის პროგრამირების ინტერფეისი

ტერმინი API არის აკრონიმი და ნიშნავს აპლიკაციის პროგრამირების ინტერფეისს.

API ჰგავს მენიუს რესტორანში. მენიუ შეიცავს კერძების ჩამონათვალს, რომლებიც შეგიძლიათ შეუკვეთოთ, ასევე თითოეული კერძის აღწერას. როდესაც აკონკრეტებთ მენიუს რომელი ელემენტი გსურთ, რესტორნის სამზარეულო ასრულებს სამუშაოს და გაწვდით მზა კერძებს. თქვენ არ იცით ზუსტად როგორ ამზადებს რესტორანი ამ საჭმელს და არც გჭირდებათ.

ანალოგიურად, API უზრუნველყოფს ბევრ ოპერაციას, რომელიც დეველოპერებს შეუძლიათ გამოიყენონ, ასევე აღწერს, თუ რას აკეთებენ ისინი. დეველოპერმა არ უნდა იცოდეს, მაგალითად, როგორ იქმნება ოპერაციული სისტემა და გამოჩნდება Save As დიალოგური ფანჯარა. მათ უბრალოდ უნდა იცოდნენ, რომ ის ხელმისაწვდომია აპლიკაციაში გამოსაყენებლად.

ეს არ არის სრულყოფილი მეტაფორა, რადგან დეველოპერებს შეიძლება მოუწიონ საკუთარი API მონაცემების მიწოდება შედეგების მისაღებად, ასე რომ, შესაძლოა, ეს უფრო ლამაზი რესტორნის მსგავსია, სადაც შეგიძლიათ მიაწოდოთ თქვენი საკუთარი ინგრედიენტები სამზარეულოსთვის.

API-ები დეველოპერებს საშუალებას აძლევს დაზოგონ დრო პლატფორმის იმპლემენტაციის გამოყენებით მნიშვნელოვანი სამუშაოს შესასრულებლად. ეს ხელს უწყობს შემუშავებული კოდის რაოდენობის შემცირებას და ასევე ხელს უწყობს იმავე პლატფორმის აპლიკაციებს შორის თანმიმდევრულობის შექმნას. API-ებს შეუძლიათ გააკონტროლონ წვდომა აპარატურულ და პროგრამულ რესურსებზე.

API უადვილებს ცხოვრებას დეველოპერებს

ვთქვათ, რომ გსურთ iPhone აპლიკაციის შემუშავება. Apple iOS ოპერაციული სისტემა უზრუნველყოფს დიდი რაოდენობა API არის როგორც ნებისმიერი სხვა ოპერაციული სისტემა, რომ ეს გაგიადვილოთ.

მაგალითად, თუ გსურთ ვებ ბრაუზერის ჩასმა ერთი ან მეტი ვებ გვერდის საჩვენებლად, თქვენ არ გჭირდებათ თქვენი ვებ ბრაუზერის დაპროგრამება ნულიდან მხოლოდ თქვენი აპლიკაციისთვის. შენ
თქვენ შეგიძლიათ გამოიყენოთ WKWebView API თქვენს აპლიკაციაში WebKit (Safari) ბრაუზერის ჩასართავად.

თუ გსურთ ფოტოების ან ვიდეოების გადაღება iPhone კამერებითქვენ არ გჭირდებათ საკუთარი კამერის ინტერფეისის დაწერა. შეგიძლიათ გამოიყენოთ კამერის API iPhone კამერის თქვენს აპლიკაციაში ჩასართავად. API რომ არ არსებობდეს, აპლიკაციის დეველოპერებს უნდა შეექმნათ საკუთარი კამერის პროგრამული უზრუნველყოფა და შეყვანილი მონაცემების ინტერპრეტაცია აპარატურაკამერები. მაგრამ საოპერაციო ოთახის დეველოპერები Apple სისტემებიშეასრულა მთელი ეს შრომა, ასე რომ დეველოპერებს შეუძლიათ უბრალოდ გამოიყენონ კამერის API კამერის ჩასართავად და შემდეგ განაგრძონ აპლიკაციის წერა. და როდესაც Apple აუმჯობესებს კამერის API-ს, ყველა აპლიკაცია, რომელიც იყენებს მას, ავტომატურად ისარგებლებს ამ გაუმჯობესებით.

ეს ეხება ყველა პლატფორმას. მაგალითად, გსურთ შექმნათ დიალოგური ფანჯარა Windows-ში? ამისთვის არის API. გსურთ თითის ანაბეჭდის ავტორიზაციის მხარდაჭერა Android-ზე? ამისათვის არსებობს API, ასე რომ თქვენ არ გჭირდებათ თითის ანაბეჭდის ყველა სენსორის ტესტირება Android-ის ყველა მწარმოებლისგან. დეველოპერებს არ უწევთ ბორბლის ხელახლა გამოგონება ისევ და ისევ.

API აკონტროლებს რესურსებზე წვდომას

API ასევე გამოიყენება აპარატურულ მოწყობილობებზე და ფუნქციებზე წვდომის გასაკონტროლებლად პროგრამული უზრუნველყოფა, რომლის გამოყენების უფლება აპლიკაციას შესაძლოა არ ჰქონდეს. ამიტომ API-ები ხშირად დიდ როლს თამაშობენ უსაფრთხოებაში.

მაგალითად, თუ თქვენ ოდესმე ეწვიეთ ვებსაიტს და გინახავთ შეტყობინება თქვენს ბრაუზერში, რომ ვებსაიტი ითხოვს თქვენს ზუსტ ადგილს, ეს ვებსაიტი ცდილობს გამოიყენოს გეოლოკაციის API თქვენს ვებ ბრაუზერში. ვებ-ბრაუზერები უზრუნველყოფენ API-ებს, რათა გაუადვილონ ვებ დეველოპერებს თქვენს მდებარეობაზე წვდომა - მათ შეუძლიათ უბრალოდ იკითხონ "სად ხარ და ბრაუზერი შეასრულებს თქვენს GPS-თან წვდომას?" Wi-Fi ქსელებირომ იპოვოთ თქვენი ფიზიკური მდებარეობა.

თუმცა, ბრაუზერები ასევე აწვდიან ამ ინფორმაციას API-ების საშუალებით, რადგან მასზე წვდომის კონტროლი შესაძლებელია. როდესაც ვებსაიტს სურს თქვენს ზუსტ მდებარეობაზე წვდომა, მისი მიღების ერთადერთი გზა არის მდებარეობის API. და როდესაც ვებსაიტი ცდილობს მის გამოყენებას, თქვენ - მომხმარებელს - შეგიძლიათ დაუშვათ ან უარყოთ მოთხოვნა. აპარატურულ რესურსებზე, როგორიცაა GPS სენსორი, წვდომა შესაძლებელია მხოლოდ API-ის საშუალებით, ასე რომ, ბრაუზერს შეუძლია აკონტროლოს წვდომა აპარატურაზე და შეზღუდოს აპების გაკეთება.

იგივე პრინციპი გამოიყენება თანამედროვე მობილური ოპერაციული სისტემებისთვის, როგორიცაა iOS და Android, სადაც მობილური აპლიკაციებიაქვს ნებართვები, რომლებიც შეიძლება განხორციელდეს API-ზე წვდომის კონტროლით. მაგალითად, თუ დეველოპერი ცდილობს კამერაზე წვდომას კამერის API-ით, შეგიძლიათ უარყოთ ნებართვის მოთხოვნა და აპს არ ექნება წვდომა თქვენი მოწყობილობის კამერაზე.

ფაილურ სისტემებს, რომლებიც იყენებენ ნებართვებს, როგორიცაა Windows, Mac და Linux, აქვთ ის ნებართვები, რომლებიც დაწესებულია API-ით. ფაილური სისტემა. ტიპიურ აპლიკაციას არ აქვს პირდაპირი წვდომა ფიზიკურ მყარ დისკზე. ამის ნაცვლად, აპლიკაციას უნდა ჰქონდეს წვდომა ფაილებზე API-ის საშუალებით.

API გამოიყენება სერვისებს შორის კომუნიკაციისთვის

API ასევე გამოიყენება სხვა მიზეზების გამო. მაგალითად, თუ ოდესმე გინახავთ ვებსაიტში ჩაშენებული Google Maps ობიექტი, ეს ვებსაიტი იყენებს Google Maps API-ს ამ რუკის ჩასართავად. Google უზრუნველყოფს მსგავს API-ებს ვებ დეველოპერებისთვის, რომლებსაც შეუძლიათ გამოიყენონ API-ების შეგროვება რთული ობიექტებიპირდაპირ თქვენს საიტზე. თუ ასეთი API არ არსებობს, დეველოპერებს შეიძლება მოუწიონ საკუთარი რუქების შექმნა და საკუთარი რუქის მონაცემების მიწოდება, რათა მცირე ინტერაქტიული რუკა მოათავსონ ვებსაიტზე.

და რადგან ეს არის API, Google-ს შეუძლია აკონტროლოს წვდომა Google Mapsმესამე მხარის ვებსაიტებზე, იმის უზრუნველსაყოფად, რომ ისინი იყენებენ მას თანმიმდევრულად, ვიდრე ცდილობენ შემთხვევით დანერგონ ჩარჩო, რომელსაც ვებსაიტი აჩვენებს Google Maps, მაგალითად.

ეს ეხება ბევრ სხვადასხვა ონლაინ სერვისს. არსებობს API-ები ტექსტის თარგმანის მოთხოვნით Google Translateან ფეისბუქის კომენტარების ან ტვიტერების ჩვენება ვებგვერდზე.

OAuth სტანდარტი ასევე განსაზღვრავს უამრავ API-ს, რომელიც საშუალებას გაძლევთ შეხვიდეთ საიტზე სხვა სერვისის საშუალებით, მაგალითად, თქვენი შესვლის სერთიფიკატების გამოყენებით. ფეისბუქის პოსტები, Google ან Twitter, რათა შეხვიდეთ ახალ ვებსაიტზე ახლის შექმნის გარეშე ანგარიშიმომხმარებელი მხოლოდ ამ საიტისთვის. API არის სტანდარტული კონტრაქტები, რომლებიც განსაზღვრავენ, თუ როგორ ურთიერთობენ დეველოპერები სერვისთან და რა სახის გამომავალი უნდა მიიღონ დეველოპერები.

თუ წაიკითხეთ ეს სტატია, უკეთ გექნებათ წარმოდგენა იმაზე, თუ რა არის API. საბოლოო ჯამში, თქვენ არ გჭირდებათ იცოდეთ რა არის API, თუ არ ხართ დეველოპერი. მაგრამ, თუ ხედავთ, რომ პროგრამულმა პლატფორმამ ან სერვისმა დაამატა ახალი API სხვადასხვა ტექნიკის ან სერვისისთვის, დეველოპერებისთვის ასეთი ფუნქციების გამოყენება უფრო ადვილი იქნება.

ეს მოკლე ვადა კარგად არის ცნობილი ყველასთვის, ვისაც აქვს განვითარების გამოცდილება. მაგრამ ყველას არ ესმის, რას ნიშნავს ეს და რატომ არის საჭირო. დეველოპერი პეტრე გაზაროვიისაუბრა API-ზე მარტივი სიტყვებითთქვენს ბლოგზე.

აბრევიატურა API ნიშნავს "Application Programming Interface" პროგრამული ინტერფეისიაპლიკაციები). მსხვილი კომპანიების უმეტესობა გარკვეულ ეტაპზე ავითარებს API-ებს კლიენტებისთვის ან მათთვის შიდა გამოყენება. იმის გასაგებად, თუ როგორ და როგორ გამოიყენება API-ები განვითარებასა და ბიზნესში, ჯერ უნდა გესმოდეთ, როგორ მუშაობს მსოფლიო ქსელი.

მსოფლიო ქსელი და დისტანციური სერვერები

WWW შეიძლება მივიჩნიოთ, როგორც ურთიერთდაკავშირებული სერვერების უზარმაზარი ქსელი, რომელზედაც ყველა გვერდი ინახება. ჩვეულებრივი ლეპტოპი შეიძლება გადაიქცეს სერვერად, რომელსაც შეუძლია მოემსახუროს მთელ ვებსაიტს ქსელში და ლოკალური სერვერებიდეველოპერები იყენებენ მას ვებსაიტების შესაქმნელად, სანამ ისინი საზოგადოებისთვის ხელმისაწვდომი გახდებიან.

ბრაუზერის მისამართის ზოლში შესვლისას www.facebook.comშესაბამისი მოთხოვნა იგზავნება დისტანციურ Facebook სერვერზე. მას შემდეგ, რაც ბრაუზერი მიიღებს პასუხს, ის განმარტავს კოდს და აჩვენებს გვერდს.

ყოველ ჯერზე, როდესაც მომხმარებელი სტუმრობს გვერდს ინტერნეტში, ის ურთიერთქმედებს დისტანციური სერვერის API-სთან. API არის სერვერის კომპონენტი, რომელიც იღებს მოთხოვნებს და აგზავნის პასუხებს.

API, როგორც კლიენტების მომსახურების საშუალება

ბევრი კომპანია გვთავაზობს API-ებს, როგორც მზა პროდუქტს. მაგალითად, Weather Underground ყიდის წვდომას ამინდის მონაცემების API-ზე.

გამოყენების სცენარი:მცირე კომპანიის ვებსაიტზე არის კლიენტებისთვის შეხვედრის ფორმა. კომპანიას სურს მასში Google Calendar-ის ინტეგრირება, რათა მომხმარებლებმა ავტომატურად შექმნან ღონისძიება და შეიყვანონ დეტალები მომავალი შეხვედრის შესახებ.

API აპლიკაცია:მიზანია საიტის სერვერმა პირდაპირ დაუკავშირდეს Google სერვერს მოთხოვნით შექმნას ღონისძიება მითითებული დეტალებით, მიიღოს Google-ის პასუხი, დაამუშაოს იგი და გაგზავნოს შესაბამისი ინფორმაცია ბრაუზერში, მაგალითად, შეტყობინება დადასტურების მოთხოვნით მომხმარებელი.

ალტერნატიულად, ბრაუზერს შეუძლია მიმართოს API-ს Google სერვერებიკომპანიის სერვერის გვერდის ავლით.

რით განსხვავდება Google Calendar API ქსელში არსებული ნებისმიერი სხვა დისტანციური სერვერის API-სგან?

ტექნიკურად, განსხვავება არის მოთხოვნისა და პასუხის ფორმატში. სრული ვებ გვერდის შესაქმნელად, ბრაუზერი ელის პასუხს HTML მარკირების ენაზე, ხოლო Google Calendar API უბრალოდ დააბრუნებს მონაცემებს JSON ფორმატში.

თუ API-ზე მოთხოვნა ხდება კომპანიის ვებსაიტის სერვერის მიერ, მაშინ ის არის კლიენტი (ისევე, როგორც ბრაუზერი არის კლიენტი, როდესაც მომხმარებელი ხსნის ვებსაიტს).

API-ს წყალობით მომხმარებელი იღებს შესაძლებლობას შეასრულოს მოქმედება კომპანიის ვებგვერდიდან გაუსვლელად.

თანამედროვე ვებსაიტების უმეტესობა იყენებს მინიმუმ რამდენიმე მესამე მხარის API-ს. ბევრ ამოცანას უკვე აქვს მზა გადაწყვეტილებები, რომლებსაც სთავაზობენ მესამე მხარის დეველოპერები, იქნება ეს ბიბლიოთეკა თუ სერვისი. ხშირად უფრო ადვილი და საიმედოა მზა გადაწყვეტის გამოყენება.

ბევრი დეველოპერი ავრცელებს აპლიკაციას რამდენიმე სერვერზე, რომლებიც ურთიერთობენ ერთმანეთთან API-ის გამოყენებით. სერვერებს, რომლებიც ასრულებენ მხარდაჭერის ფუნქციას მთავარ აპლიკაციის სერვერზე, ეწოდება მიკროსერვისები.

ასე რომ, როდესაც კომპანია თავის მომხმარებლებს სთავაზობს API-ს, ეს უბრალოდ ნიშნავს, რომ მან შექმნა სპეციალური URL-ების სერია, რომელიც პასუხად მხოლოდ მონაცემებს აბრუნებს.

ასეთი მოთხოვნები ხშირად შეიძლება გაიგზავნოს ბრაუზერის საშუალებით. ვინაიდან HTTP მონაცემთა გადაცემა ხდება ტექსტური ფორმით, ბრაუზერი ყოველთვის შეძლებს პასუხის ჩვენებას. მაგალითად, ბრაუზერის საშუალებით შეგიძლიათ პირდაპირ შეხვიდეთ GitHub API-ზე (https://api.github.com/users/petrgazarov), წვდომის ტოკენის გარეშე და მიიღოთ ეს პასუხი JSON ფორმატში:

ბრაუზერი შესანიშნავად აჩვენებს JSON პასუხს, რომელიც შეიძლება ჩასვათ კოდში. ასეთი ტექსტიდან მონაცემების ამოღება საკმარისად მარტივია, რომ გამოიყენოთ იგი თქვენი შეხედულებისამებრ.

კიდევ რამდენიმე API მაგალითი

სიტყვა "აპლიკაციას" შეიძლება ჰქონდეს განსხვავებული მნიშვნელობა. API-ს კონტექსტში ეს ნიშნავს:

  • პროგრამული უზრუნველყოფის ნაწილი კონკრეტული ფუნქციით,
  • მთელი სერვერი, მთელი აპლიკაცია ან აპლიკაციის მხოლოდ ცალკეული ნაწილი.

პროგრამული უზრუნველყოფის ნებისმიერ ნაწილს, რომელიც შეიძლება მკაფიოდ გამოირჩეოდეს გარემოსგან, შეუძლია შეცვალოს ასო "A" ინგლისურ აბრევიატურაში და ასევე შეიძლება ჰქონდეს რაიმე სახის API. მაგალითად, როდესაც დეველოპერი ახორციელებს მესამე მხარის ბიბლიოთეკას კოდში, ის ხდება მთელი აპლიკაციის ნაწილი. როგორც დამოუკიდებელი პროგრამული უზრუნველყოფის ნაწილი, ბიბლიოთეკას ექნება რაიმე სახის API, რომელიც საშუალებას აძლევს მას დაუკავშირდეს დანარჩენ აპლიკაციის კოდს.

ობიექტზე ორიენტირებულ დიზაინში კოდი წარმოდგენილია როგორც ობიექტების კოლექცია. აპლიკაციაში შეიძლება იყოს ასობით ასეთი ობიექტი, რომლებიც ურთიერთქმედებენ ერთმანეთთან. თითოეულ მათგანს აქვს საკუთარი API - კომპლექტი საჯაროაპლიკაციაში სხვა ობიექტებთან ურთიერთქმედების თვისებები და მეთოდები. ობიექტებს ასევე შეიძლება ჰქონდეთ კერძო, შიდა ლოგიკა, რომელიც დაფარულია გარემოდან და არ არის API.

დროა ვისაუბროთ ისეთ კონცეფციაზე, როგორიცაა API ფუნქციონირებს Visual Basic ენაზე. რატომ არის ეს ფუნქციები მნიშვნელოვანი Visual Basic-ში? მოდით გავარკვიოთ, ჯერ ერთი, როდესაც Visual Basic-ში პროგრამირებას დაიწყებთ, მაშინვე მიხვდებით, რომ ამ ფუნქციების გამოყენებით შეგიძლიათ დაწეროთ ძალიან სერიოზული პროგრამები და მეორეც, უბრალოდ ბევრი რამის გაკეთება არ შეგიძლიათ API ფუნქციების გამოყენების გარეშე, მაგალითად, თითქმის ყველაფერი, რაც დაკავშირებულია გამოყენებით. Windows ოპერაციული სისტემა ( მაგალითად: გაარკვიეთ მომხმარებლის სახელი, ადგილი მყარ დისკზე და ა.შ.).

მაგრამ იმისათვის, რომ დაიწყოთ ამ ფუნქციების პრაქტიკაში განხორციელება, თქვენ უნდა იცოდეთ რა არის ისინი, ჯერ ამაზე ვისაუბროთ.

თეორია Visual Basic API ფუნქციებზე

APIარის აპლიკაციის პროგრამირების ინტერფეისის აბრევიატურა ( აპლიკაციის პროგრამირების ინტერფეისი). სხვა სიტყვებით რომ ვთქვათ, API არის ფუნქციების ერთობლიობა, რომელსაც თავად ოპერაციული სისტემა აძლევს პროგრამისტს გამოიყენოს მათ პროგრამებში. API-ს გამოყენებით, პროგრამისტებს შეუძლიათ ადვილად განახორციელონ თავიანთი იდეები პრაქტიკაში.

API ფუნქციების გამოძახება შესაძლებელია Visual Basic-დან დავალებების შესასრულებლად, რომელთათვისაც სტანდარტული არ არის საკმარისი პროგრამის კოდი Visual Basic. მაგალითად, სტანდარტული საშუალებები Visual Basic არ გაძლევთ საშუალებას გამორთოთ კომპიუტერი ან გადატვირთოთ იგი. თუმცა, ეს ყველაფერი მარტივად შეიძლება გაკეთდეს შესაბამისი API ფუნქციის გამოძახებით.

თითქმის ყველა ფუნქცია, რომელიც მდებარეობს Windows-ში, მდებარეობს DLL-ებში ( დინამიური ბმული ბიბლიოთეკა). ყველა dll ფაილი მდებარეობს სისტემაში Windows საქაღალდე. არსებობს 1000-ზე მეტი API ფუნქცია, რომლებიც იყოფა ოთხ ძირითად კატეგორიად.

  • აპლიკაციებთან მუშაობა - აპლიკაციების გაშვება და დახურვა, მენიუს ბრძანებების დამუშავება, ფანჯრების გადატანა და ზომის შეცვლა;
  • გრაფიკა - სურათების შექმნა;
  • სისტემის ინფორმაცია - მიმდინარე დისკის იდენტიფიკაცია, მეხსიერების ზომა, მიმდინარე მომხმარებლის სახელი და ა.შ.;
  • რეესტრთან მუშაობა - Windows რეესტრის მანიპულირება.

API ფუნქციების პრაქტიკაში გამოყენება

ახლა მოდით გადავიდეთ ამ ფუნქციების პრაქტიკაში გამოყენებაზე. Visual Basic-ში გამოძახებული API ფუნქციები ჯერ უნდა იყოს დეკლარირებული. რეკლამის დროს მითითებულია DLL სახელიდა ფუნქციები, ასევე ინფორმაცია არგუმენტების რაოდენობისა და ტიპის შესახებ.

DLL პროცედურები გამოცხადებულია Declare ბრძანებით ფორმის მოდულის ან სტანდარტული მოდულის ზოგადი დეკლარაციების განყოფილებაში:

გამოაცხადეთ ფუნქციის სახელი Lib "library" [([ _ ცვლადი [,ByVal,] ცვლადი]...])], როგორც ტიპი

სტანდარტულ მოდულებში ნაპოვნი DLL პროცედურები ნაგულისხმევად საჯაროა და მათი გამოძახება შესაძლებელია აპლიკაციის ნებისმიერი ადგილიდან. ფორმის მოდულში გამოცხადებული პროცედურები პირადია და წინ უნდა უძღოდეს საკვანძო სიტყვა Private.

Lib განყოფილება გეტყვით, სად უნდა ვეძებოთ DLL ფაილიფუნქციის შემცველი. Windows-ის ძირითადი ბიბლიოთეკების მითითებისას (user32.dll, kernel32.dll, gdi.dll), გაფართოება არ არის საჭირო.

თუ ფაილის გზა არ არის მითითებული, მაშინ დირექტორიაში დათვალიერება იწყება შემდეგი თანმიმდევრობით

  1. დირექტორია, რომელიც შეიცავს პროგრამის EXE ფაილს;
  2. მიმდინარე დირექტორია;
  3. Windows სისტემის დირექტორია;
  4. Windows დირექტორია;
  5. ბილიკის გარემოს ცვლადი.

აქ არის სტანდარტული Windows DLL-ების მცირე სია:

  • advapi.dll - NT დაცვა, რეესტრი და სხვა მოწინავე სერვისები;
  • comdlg.dll - სტანდარტული დიალოგური ფანჯრები;
  • gdi.dll - გრაფიკული მოწყობილობის ინტერფეისი;
  • kernel32.dll - მეხსიერება, დისკები, პროცესები, რესურსები;
  • mpr.dll - ქსელები;
  • netapi32.dll - ქსელის API ბიბლიოთეკა;
  • shell32.dll - Windows-ის გარსი, გადაათრიეთ და ჩამოაგდეთ, ხატის შერჩევა;
  • user32.dll - მომხმარებლის ინტერფეისი - ფანჯრები, მენიუები, ხაზები, შეტყობინებები;
  • version.dll - ვერსიის კონტროლი;
  • winmm.dll - მულტიმედია, ხმა, ჯოისტიკები, ტაიმერები;
  • winspoll.dll - ბეჭდვის მენეჯერი.

DLL პროცედურების უმეტესობა დოკუმენტირებულია C და C++ პროგრამირების ენის ნოტაციით. API ფუნქციის წარმატებით გადაქცევისთვის Declare ბრძანებად, თქვენ უნდა გესმოდეთ არგუმენტის გადაცემის მექანიზმი. როგორც წესი, არგუმენტები გადადის მნიშვნელობით. ამ შემთხვევაში, ByVal საკვანძო სიტყვა მოთავსებულია არგუმენტის სახელის წინ. თუ არგუმენტი გადაცემულია მითითებით, მაშინ ByRef დაყენებულია.

აქ მოცემულია Visual Basic-ში გამოყენებული ფუნქციების ყველაზე მცირე ჩამონათვალი:

  • BitBlt - აკოპირებს სურათს ერთი hDC-დან მეორეზე;
  • FindWindow - პოულობს ფანჯრის სახელურს მითითებული წარწერით;
  • GetCursorPos - აბრუნებს მაუსის კურსორის მიმდინარე პოზიციას (გლობალურად);
  • GetDriveType - აბრუნებს დისკის ტიპს;
  • GetForegroundWindow - აბრუნებს აქტიური ფანჯრის სახელურს;
  • SetCursorPos - ადგენს მაუსის კურსორის ახალ პოზიციას;
  • SetVolumeLabel - ცვლის დისკის ეტიკეტს;
  • SetWindowPos - ადგენს ფანჯრის პოზიციას გარკვეული სახელურით (ასევე შეგიძლიათ გამოიყენოთ ეს ფუნქცია ფანჯრის ყველა სხვაზე TOP-ზე გადასაყვანად);
  • ShellExecute - უშვებს გაფართოებასთან დაკავშირებულ აპლიკაციას, რომელსაც აქვს მითითებული ფაილი(ასევე შეუძლია მხოლოდ მითითებული აპლიკაციის გაშვება);
  • ShowCursor - მალავს ან აჩვენებს მაუსის კურსორს ეკრანზე.

რეესტრთან მუშაობის მაგალითები

ასევე, Visual Basic-ში და სხვა ენებზე დაპროგრამებისას, პრობლემა წარმოიქმნება, როდესაც გჭირდებათ გამოყენება ვინდოუსის რეესტრი, მაგრამ API ფუნქციების გამოყენებით ამის გაკეთება მარტივია, მაგალითად:

სიმებიანი პარამეტრის წასაკითხად გამოიყენეთ GetRegString ფუნქცია

მაგალითი:

ჩაბნელებული ტესტი როგორც სიმებიანი ტესტი = GetRegString(HKEY_LOCAL_MACHINE, _ "Software\Microsoft\DirectX", "Version") Form1.Caption = ტესტი

DWORD პარამეტრის წასაკითხად GetRegDWord

მაგალითი:

Dim ტესტი As Long ტესტი = GetRegDWord(HKEY_LOCAL_MACHINE, _ "Software\Microsoft\Internet Explorer\AboutURLs", "Home") Form1.Caption = ტესტი

სიმებიანი პარამეტრის დასაწერად გამოიყენეთ SetRegString

მაგალითი:

SetRegString HKEY_LOCAL_MACHINE, _ "Software\test", "MyProgram", "Options"

თუ გასაღები ან პარამეტრი არ არის შექმნილი, მაშინ ის შეიქმნება, თუ გასაღები ან პარამეტრი უკვე არსებობს, მაშინ ახალი მნიშვნელობები ჩაიწერება ძველზე.

DWORD ტიპის პარამეტრის დასაწერად გამოიყენეთ SetRegDWord

მაგალითი:

SetRegDWord HKEY_LOCAL_MACHINE, _ "Software\test", "MyProgram", "555"

რეესტრიდან გასაღების ამოსაღებად გამოიყენეთ DeleteRegKey ფუნქცია

მაგალითი:

DeleteRegKey HKEY_LOCAL_MACHINE, "პროგრამული უზრუნველყოფა", "ტესტი", True

მეორე პარამეტრი - მშობლის გასაღები
მესამე პარამეტრი არის True - თუ საჭიროა წაშლის დადასტურება ან False - თუ დადასტურება არ არის საჭირო.

რეესტრიდან მნიშვნელობის წასაშლელად გამოიყენეთ DeleteRegValue ფუნქცია

მაგალითი:

DeleteRegValue HKEY_LOCAL_MACHINE,_ "Software\Microsoft\Internet Explorer\AboutURLs", "mozilla", False

სინამდვილეში, API-ს შესაძლებლობები ფუნქციონირებს ოპერაციული სისტემა Windows თითქმის შეუზღუდავია. მოდით დავასრულოთ Visual Basic მახასიათებლის ნახვა და ბოლოს დავწეროთ პატარა პროგრამა API ფუნქციების გამოყენებით.

ეს პროგრამა უბრალოდ აჩვენებს შეტყობინებას ეკრანზე, ჩასვით შემდეგი კოდი:

პირადი გამოცხადების ფუნქცია BeginPath Lib "gdi32" (ByVal hdc სანამ) ფუნქცია SetWindowRgn Lib "user32" (ByVal hWnd მანამ, ByVal hRgn როგორც დიდხანს, ByVal bRedraw როგორც ლოგიკური) As Long Private Sub Form_Load() Const TEXT = "თქვენ იყენებდით API" Dim hRgn As Long Roman =Time. " Font.Bold = True Font.Size = 60 Width = TextWidth(TEXT) Height = TextHeight(TEXT) BeginPath hdc Print TEXT EndPath hdc hRgn = PathToRegion(hdc) SetWindowRgn hWn, -Fal.Widg (/Fal.Wid) 2 , (ეკრანი. სიმაღლე - სიმაღლე) / 2 ბოლო ქვე

აქ ჩვენ გამოვიყენეთ 4 ფუნქცია (BeginPath, EndPath, PathToRegion, SetWindowRgn), რომლებიც განლაგებულია ორში dll ბიბლიოთეკები(gdi32, user32).

ჯერჯერობით სულ ეს არის!

© 2024 ermake.ru -- კომპიუტერის შეკეთების შესახებ - საინფორმაციო პორტალი