sistem API. World Wide Web dan server jarak jauh. Apa kebutuhan dan manfaat menggunakan API?

Salam!
Pada artikel ini kita akan melihat apa itu API, di mana, bagaimana, dan untuk apa digunakan. Kami juga akan melihat bagaimana API dapat digunakan dalam pengembangan web Anda dan bagaimana API dapat menyederhanakan kehidupan seorang pemrogram web.

Jadi mari kita mulai dengan definisinya. API (Application Programming Interface) adalah antarmuka pemrograman, antarmuka untuk membuat aplikasi. Dalam istilah yang lebih mudah dipahami, API adalah kode siap pakai untuk membuat hidup seorang programmer lebih mudah. API diciptakan agar seorang programmer benar-benar dapat mempermudah tugas menulis aplikasi dengan menggunakan kode yang sudah jadi (misalnya fungsi). JQuery yang terkenal, ditulis dalam JavaScript, juga merupakan sejenis API. Jika kita melihat contoh ini secara spesifik, jQuery membuat penulisan kode menjadi lebih mudah. Apa yang bisa dilakukan dalam 30 baris menggunakan cara JavaScript biasa ditulis dalam 5-6 menggunakan jQuery. Jika kita melihat API secara umum, kita dapat menemukan banyak sekali layanan yang menyediakan solusi pengembangan. Yang paling terkenal saat ini adalah layanan code.google.com, yang menyediakan sekitar lima puluh API berbeda! Ini termasuk antarmuka untuk membuat aplikasi Android, berbagai API untuk bekerja dengan AJAX, dan berbagai API aplikasi yang dapat dengan mudah disesuaikan dengan keinginan Anda.

Lagi pula, apakah masuk akal untuk menulis kode sendiri? Mengapa mengerjakan apa yang sudah dibuat? Apakah masuk akal untuk menolak solusi gratis (dan pada kenyataannya, bantuan gratis) dalam pengembangan web? Jika Anda menjawab “TIDAK” untuk semua pertanyaan ini, anggaplah Anda memahami esensi API.

Tapi saya juga ingin membuat reservasi. Pengembang pemula TIDAK boleh menggunakan solusi setengah matang, karena mereka tidak akan mengatasi masalah sebenarnya di masa depan. Oleh karena itu, jika Anda seorang programmer web pemula, jangan gunakan produk setengah jadi! Belajar berpikir dengan kepala sendiri, membangun berbagai algoritma untuk memahami esensi pemrograman. Saya juga mengatakan, sudah ditujukan kepada semua orang, bahwa API bukanlah solusi siap pakai, melainkan sebuah lingkungan, antarmuka untuk membuat proyek Anda sendiri. Anda tidak makan irisan daging beku dari toko, bukan? Anda menggorengnya terlebih dahulu, bukan? Analogi ini menangkap esensi API dengan sangat jelas.

Secara umum, saya sudah memberi tahu Anda apa itu API, di mana dan bagaimana penggunaannya, dan yang terpenting, alasannya. Saya harap Anda mendapatkan pembelajaran yang menyenangkan tentang pemrograman web dan pemahaman yang lebih mendalam!

Tag: api

Artikel ini tidak dapat dikomentari karena penulisnya belum menjadi anggota penuh komunitas. Anda akan dapat menghubungi penulis hanya setelah dia menerimanya

API(Bahasa inggris) Antarmuka Pemrograman Aplikasi) - ini adalah antarmuka pemrograman aplikasi. API aplikasi atau layanan tertentu menyediakan serangkaian prosedur, fungsi, dan variabel siap pakai yang dapat digunakan oleh pengembang pihak ketiga untuk membuat aplikasi dan skrip mereka sendiri untuk bekerja dengan layanan ini.

Saat bekerja melalui API, aplikasi mengirimkan permintaan ke layanan dan menerima respons yang berisi data yang diminta, terlepas dari bahasa pemrograman yang digunakan untuk membuatnya.

Pemilik toko online, yang menggunakan layanan pihak ketiga dan aplikasi mereka sendiri, memiliki kesempatan untuk mengakses melalui API:

Informasi tentang pesanan yang ditempatkan

Tindakan (metode) yang tersedia untuk memproses informasi pesanan:

  1. Memilih informasi pesanan berdasarkan ID
  2. Memilih informasi pesanan berdasarkan filter
  3. Jumlah pesanan berdasarkan filter
  4. Buat pesanan
  5. Menghapus pesanan
  6. Penghapusan pesanan secara massal
  7. Memilih semua status yang tersedia untuk pesanan
  8. Perbarui status pesanan
  9. Menambahkan komentar ke pesanan

Informasi pelanggan

  1. Menambahkan pelanggan
  2. Hapus pelanggan
  3. Penghapusan massal pelanggan
  4. Memilih data pelanggan berdasarkan filter
  5. Jumlah pelanggan berdasarkan filter

Informasi tentang pengguna terdaftar

Tindakan (metode) yang tersedia untuk memproses informasi tentang pelanggan:

  1. Memilih informasi tentang pengguna terdaftar berdasarkan ID
  2. Memilih informasi tentang semua pengguna terdaftar
  3. Memilih informasi tentang semua data yang ditentukan oleh pengguna saat pendaftaran:
    • Nama belakang, nama depan, patronimik;
    • Alamat email kontak;
    • Nomor telepon kontak;
    • Alamat pengiriman yang ditentukan: kode pos, nama daerah, nama jalan, nomor rumah, nomor gedung, nomor apartemen, lantai;

Memperhatikan! Saat mendaftar, pengguna mungkin tidak melengkapi semua kolom di atas.

rencana pengembangan API

Dalam waktu dekat, kami berencana untuk membuka antarmuka yang mendukung interaksi toko dengan aplikasi dan layanan pihak ketiga untuk bekerja dengan:

  1. Bagian katalog.
  2. Barang-barang.
  3. Sebuah keranjang.
  4. Diskon.
  5. Metode pengiriman.
  6. Metode pembayaran.

Untuk menguji interaksi dengan API platform beseller, toko uji beseller-api.shop.by telah dibuat.

Untuk mengakses toko tes, Anda harus memberikan login dan kata sandi. Anda dapat memperolehnya berdasarkan permintaan dari manajer pribadi Anda.

Sebelum menguji interaksi dengan API, kami menyarankan Anda:

  1. lakukan beberapa pemesanan sendiri;
  2. berlangganan buletin;
  3. lihat bagaimana informasi tentang pesanan yang dilakukan dan pelanggan ditampilkan di panel administrasi toko.

Panel kontrol toko tersedia di: beseller-api.shop.by/manager/. Login dan password saat masuk ke control panel mirip dengan login dan password untuk mengakses toko.

Bagaimana cara terhubung melalui API ke toko Anda?

Untuk menghubungkan aplikasi dengan toko Anda, Anda perlu menentukan URL akses API dalam bentuk:

http://alamat_situs_anda:8082/graphql?token=kunci_rahasia_pribadi_anda

Anda dapat memperoleh kunci rahasia berdasarkan permintaan dari manajer pribadi Anda.

Fungsi dan variabel GraphQL untuk bekerja dengan API platform beseller

Cara terhubung ke API menggunakan bahasa pemrograman PHP

Untuk kenyamanan bekerja dengan API platform beseller, Anda dapat menggunakan:

  1. Kelas yang kami kembangkan untuk PHP.
    1. Klien Graphql- menerima dan mengirimkan data ke server;
    2. GrafikQlHelper- berisi API kueri dan mutasi yang diimplementasikan;
  2. Contoh penggunaan class untuk melakukan pemilihan dan perubahan pada database toko online.

Menyiapkan lingkungan lokal Anda

Untuk mendemonstrasikan dengan jelas pengiriman permintaan ke API dan respons yang diterima, Anda dapat menggunakan lingkungan lokal.

GraphiQL Feen digunakan sebagai lingkungan lokal, ini adalah ekstensi untuk browser Google Chrome yang memungkinkan Anda menghasilkan permintaan ke API.

Setelah menginstal aplikasi, ikon aplikasi akan muncul di browser Anda dekat bilah alamat.

Buka aplikasi GraphiQL Feen dan buka tab “SERVERS”, pilih metode pengiriman POST, lalu tentukan url akses API.

Alamat berikut harus digunakan sebagai url pengujian:

Lingkungan lokal dikonfigurasi, Anda dapat menghasilkan permintaan ke API. Untuk melakukan ini, Anda perlu membuka tab “QUERIES”.

Membentuk permintaan ke beseller API menggunakan GraphiQL Feen dan respon yang diterima

Penjelasan untuk tangkapan layar:

  1. Kueri yang disimpan
  2. Bidang untuk memasukkan permintaan
  3. Bidang masukan variabel
  4. Tanggapan diterima
  5. Tombol mulai

Contoh permintaan untuk mendapatkan daftar pesanan yang ditempatkan untuk jangka waktu tertentu

kueri ($pertama:Int, $offset:Int, $filter: OrdersFilterType)(
pesanan(pertama:$pertama, offset:$offset, filter:$filter)(
komentar
status(
pengenal
keterangan
nama
}
tanggal_buat
tanggal_perbarui
jumlah (
akhiran
nilai
}
pembayaran (
nama
keterangan
biaya (
akhiran
nilai
}
}
pengiriman (
nama
keterangan
biaya (
akhiran
nilai
}
}
mata uang (
kode_bank
kursus
akhiran
}
data_pengguna(
nama
keterangan
nilai
}
}
}

Menentukan jangka waktu untuk mengambil data tentang pesanan yang dilakukan

{
"menyaring": (
"tanggal_setelah": "16-11-2017T00:00:01Z",
"date_before": "23-11-2017T00:00:01Z"
}
}

Contoh respon dari API

{{
"data": (
"pesanan": [
{
"komentar": "Culpa officiis vel ut.",
"tanggal_buat": "22-11-2017 16:23:28",
"mata uang": [
{
"kode_bank": "BYN",
"kursus": 10.000,
"akhiran": "gosok."
}
],
"pengiriman": (
"biaya": [
{
"akhiran": "gosok.",
"nilai": 0
}
],
"deskripsi": "Kurir",
"nama": "adat"
},
"pembayaran": (
"biaya": [
{
"akhiran": "gosok.",
"nilai": 0
}
],
"deskripsi": "Kartu plastik",
"nama": "adat"
},
"status": (
"deskripsi": "Baru",
"id": 1,
"nama": "baru"
},
"jumlah": [
{
"akhiran": "gosok.",
"nilai": 4450
}
],
"tanggal_perbarui": "22-11-2017 16:23:28",
"data_pengguna": [
{
"deskripsi": "Alamat email",
"nama": "email",
"nilai": " [dilindungi email]"
},
{
"deskripsi": "Telepon",
"nama": "telepon",
"nilai": "784.392.3949 x69329"
},
{
"deskripsi": "Alamat",
"nama": "pendaftaran",
"value": "607 Erik Station Suite 057\nReynaberg, WY 83542-0037"
},
{
"deskripsi": "Komentar",
"nama": "komentar",
"value": "Id nam illo optio."
},
{
"deskripsi": "Nama",
"nama": "fio",
"nilai": "Jordi Mann MD"
}
]
}

, fungsi, struktur, atau konstanta) yang dengannya satu program komputer dapat berinteraksi dengan program lain. Biasanya disertakan dalam deskripsi beberapa protokol Internet (misalnya RFC), kerangka perangkat lunak (framework), atau standar panggilan fungsi sistem operasi. Seringkali diimplementasikan oleh perpustakaan perangkat lunak atau layanan sistem operasi terpisah. Digunakan oleh programmer saat menulis semua jenis aplikasi.

API sebagai sarana integrasi aplikasi

API mendefinisikan fungsionalitas yang disediakan oleh program (modul, perpustakaan), sedangkan API memungkinkan Anda untuk mengabstraksikan bagaimana sebenarnya fungsionalitas ini diimplementasikan.

Jika suatu program (modul, perpustakaan) dianggap sebagai kotak hitam, maka API adalah sekumpulan “pegangan” yang tersedia bagi pengguna kotak ini dan yang dapat diputar dan ditariknya.

Komponen perangkat lunak berinteraksi satu sama lain melalui API. Dalam hal ini, komponen biasanya membentuk hierarki - komponen tingkat tinggi menggunakan API dari komponen tingkat rendah, dan pada gilirannya, menggunakan API dari komponen tingkat yang lebih rendah.

Protokol transfer data melalui Internet dibangun berdasarkan prinsip ini. Tumpukan protokol standar (model jaringan OSI) berisi 7 lapisan (dari lapisan transfer bit fisik ke lapisan protokol aplikasi seperti protokol HTTP dan IMAP). Setiap lapisan menggunakan fungsionalitas lapisan transfer data sebelumnya (“lebih rendah”) dan, pada gilirannya, menyediakan fungsionalitas yang diperlukan ke tingkat berikutnya (“lebih tinggi”).

Penting untuk dicatat bahwa konsep protokol memiliki arti yang dekat dengan konsep API. Keduanya merupakan abstraksi fungsionalitas, hanya dalam kasus pertama kita berbicara tentang transfer data, dan yang kedua kita berbicara tentang interaksi aplikasi.

API perpustakaan fungsi dan kelas menyertakan deskripsi tanda tangan Dan semantik fungsi.

Tanda tangan fungsi

Terkadang mereka membedakannya tanda tangan panggilan Dan tanda tangan implementasi fungsi. Tanda tangan panggilan biasanya dikompilasi dari struktur sintaksis pemanggilan fungsi, dengan mempertimbangkan tanda tangan cakupan fungsi yang diberikan, nama fungsi, urutan tipe argumen aktual dalam panggilan, dan tipe dari pemanggilan fungsi tersebut. hasil. Tanda tangan implementasi biasanya mencakup beberapa elemen dari struktur sintaksis deklarasi fungsi: penentu cakupan fungsi, namanya, dan urutan tipe argumen formal.

Misalnya, dalam bahasa pemrograman C++, suatu fungsi sederhana diidentifikasi secara unik oleh kompiler berdasarkan namanya dan urutan tipe argumennya, yang merupakan tanda tangan fungsi dalam bahasa ini. Jika suatu fungsi adalah metode dari kelas tertentu, maka nama kelas juga akan dicantumkan dalam tanda tangannya.

Dalam industri perangkat lunak, API standar yang umum untuk fungsionalitas standar memainkan peran penting karena mereka memastikan bahwa semua program yang menggunakan API umum akan bekerja dengan baik, atau setidaknya dengan cara yang lazim. Dalam kasus API GUI, ini berarti bahwa program akan memiliki antarmuka pengguna yang serupa, sehingga memudahkan untuk mempelajari produk perangkat lunak baru.

Di sisi lain, perbedaan API pada sistem operasi yang berbeda membuat sangat sulit untuk mem-porting aplikasi antar platform. Ada berbagai metode untuk mengatasi kompleksitas ini - menulis API "perantara" (wxWidgets, GTK, dll. API GUI), menulis pustaka yang memetakan panggilan sistem dari satu OS ke panggilan sistem dari OS lain (runtime seperti Wine, cygwin, dan lain-lain .), pengenalan standar pengkodean dalam bahasa pemrograman (misalnya, perpustakaan standar bahasa C), penulisan bahasa interpretasi yang diimplementasikan pada platform berbeda (python, Perl, php, tcl, Java, dll.).

Perlu juga dicatat bahwa programmer sering kali memiliki beberapa API berbeda untuk mencapai hasil yang sama. Selain itu, setiap API biasanya diimplementasikan menggunakan komponen perangkat lunak API dengan tingkat abstraksi yang lebih rendah.

Misalnya: untuk melihat baris “Halo, dunia!” ", Anda hanya perlu membuat dokumen HTML dengan judul minimal dan isi sederhana yang berisi baris ini. Saat browser membuka dokumen ini, program browser akan meneruskan nama file (atau deskriptor file yang sudah terbuka) ke perpustakaan yang memproses dokumen HTML, yang, pada gilirannya, menggunakan API sistem operasi, akan membaca file ini dan memahami strukturnya. , lalu panggil secara berurutan melalui pustaka API operasi grafis primitif standar seperti "bersihkan jendela", "tulis" Halo, dunia! Saat melakukan operasi ini, pustaka grafis primitif akan menghubungi pustaka antarmuka jendela dengan permintaan yang sesuai, dan pustaka ini akan memanggil API sistem operasi untuk menulis data ke buffer kartu video.

Selain itu, di hampir setiap level sebenarnya terdapat beberapa kemungkinan API alternatif. Misalnya: kita dapat menulis dokumen sumber bukan dalam HTML, tetapi dalam LaTeX, dan kita dapat menggunakan browser apa pun untuk menampilkannya. Selain itu, browser yang berbeda menggunakan pustaka HTML yang berbeda, dan selain itu, semua ini dapat dikompilasi menggunakan pustaka primitif yang berbeda dan pada sistem operasi yang berbeda.

Oleh karena itu, tantangan utama sistem API multi-level yang ada saat ini adalah:

  • Kesulitan dalam mem-porting kode program dari satu sistem API ke sistem API lainnya (misalnya saat mengganti OS);
  • Hilangnya fungsionalitas saat berpindah dari level yang lebih rendah ke level yang lebih tinggi. Secara kasar, setiap “lapisan” API dibuat untuk memfasilitasi pelaksanaan beberapa rangkaian operasi standar. Namun pada saat yang sama, menjadi sangat sulit atau pada dasarnya tidak mungkin untuk melakukan beberapa operasi lain yang disediakan oleh API tingkat yang lebih rendah.

API paling terkenal

Sistem operasi

Menurut definisi dari Wikipedia, API adalah sekumpulan kelas, prosedur, fungsi, struktur, dan konstanta siap pakai yang disediakan oleh aplikasi (perpustakaan, layanan) untuk digunakan dalam produk perangkat lunak eksternal. Digunakan oleh programmer untuk menulis semua jenis aplikasi.

Namun karena sebagian besar Wikipedia tidak dapat dimengerti oleh banyak orang, saya akan mencoba menjelaskan dalam istilah awam apa itu API dan untuk apa API itu biasanya dibuat serta bagaimana penggunaannya.

API benar-benar berbeda, tetapi sebagai contoh, saya memilih situasi ketika kami memiliki jaringan toko dan hanya satu database umum. Bayangkan Anda memiliki program afiliasi. Program afiliasi bekerja berdasarkan prinsip berikut: seseorang mendaftar di program afiliasi dan menerima mesin toko. Kemudian dia dapat menginstal toko ini di hostingnya dan mulai bekerja. Namun semua data di toko ini diambil dari database kami, artinya, kami perlu memberikan setiap mitra akses ke database berharga kami. Bisakah Anda bayangkan betapa berbahayanya hal ini? Lagi pula, kita perlu membuka akses ke database dari luar agar semua toko mitra bisa bekerja dengannya. Apa jadinya jika data akses Anda jatuh ke tangan penjahat?

Di sinilah API akan membantu kita. Daripada memberikan akses ke database, kami hanya akan membuat API yang melaluinya toko mitra akan menerima informasi. Dengan cara ini, hanya skrip API kami yang akan berfungsi dengan database, dan toko akan berfungsi dengan skrip ini.

Bagaimana cara kerjanya?
Misalnya, toko mengirimkan permintaan ke API kami
http://ourapi.com/get_books?limit=20
dan API kami memahami bahwa ia perlu memberikan daftar buku yang terdiri dari 20 eksemplar, karena kami melewati parameter batas sama dengan 20. Skrip kami (API) membuat permintaan ke database, menerima daftar buku dan mengembalikannya ke toko (sebenarnya, itu hanya menampilkan ) dalam format tertentu. Format di mana API mengembalikan informasi bisa apa saja, yang utama adalah toko kami memahaminya. Ini bisa berupa JSON, array berseri, atau XML. Ini sudah tidak penting lagi, yang penting Anda memahami prinsipnya.

Anda menentukan serangkaian perintah yang dipahami sendiri oleh API. Misalnya, dalam kasus kami, ini bisa berupa perintah seperti mendapatkan daftar buku, mendapatkan daftar kategori, mendapatkan buku populer, mendapatkan buku baru, dll. Dengan cara ini, meskipun penyerang mendapat kesempatan untuk mengakses API kami, yang bisa dia lakukan hanyalah mendapatkan daftar buku, dan ini tidak menimbulkan ancaman apa pun terhadap database kami.

Saya harap saya bisa menjelaskan apa itu API dengan contoh sederhana. Jika Anda memiliki pertanyaan, tanyakan di komentar atau di forum dan kami akan dengan senang hati membantu Anda menyelesaikannya.

Cepat atau lambat, setiap programmer dihadapkan pada konsep seperti API. Namun, ketika pertemuan seperti itu terjadi, tidak semua orang mengetahui apa itu, mengapa diperlukan dan bagaimana menggunakannya. Dan dalam artikel ini saya akan mengisi kesenjangan pengetahuan sebagian dari Anda, dan juga memberikan contoh dari latihan saya.

API (antarmuka pemrograman aplikasi) - Ini antarmuka pemrograman aplikasi. Dalam istilah yang lebih sederhana, ini adalah sekumpulan berbagai fungsi, konstanta, kelas, dan format kueri yang dapat digunakan dalam program lain.

Dapat dianggap demikian API- ini adalah objek yang implementasinya tidak kita ketahui, namun kita dapat menggunakannya. Misalnya, komputer adalah sebuah benda yang implementasinya hanya diketahui sedikit orang, namun hampir semua orang dapat menggunakannya untuk melakukan beberapa tindakan: menonton video, menjelajahi Internet, mencetak teks, dll. Hanya sedikit orang yang tahu cara kerjanya, tetapi hampir semua orang bisa melakukannya.

Contoh API adalah API Windows, API OpenGL, API Direct3D dan sebagainya.

Misalnya saja belum lama ini saya juga jumpai secara langsung API. Saya mendaftar untuk layanan milis" SmartResponder.ru" dan memulai buletin, di mana orang-orang mulai berlangganan. Tugasnya adalah sebagai berikut: dalam waktu 24 jam setelah berlangganan, seseorang dapat membeli kursus video berbayar saya dengan harga diskon. Karena semua informasi tentang pelanggan disimpan di server " SmartResponder.ru", lalu akses normal (misalnya melalui DB) Saya tidak memiliki akses ke data ini, tetapi saya perlu menerapkannya. Syukurlah, " SmartResponder.ru"miliki sendiri API, yang saya gunakan.

saya temukan di dalamnya API format permintaan untuk mendapatkan tanggal berlangganan sebagai hasilnya. Lebih jauh melalui keriting Saya mengirimkan permintaan terkait dan menerima tanggal berlangganan yang diperlukan untuk tanggal tertentu alamat email. Berikutnya adalah pemrosesan standar dan keluaran hasilnya.

  • Sergei Savenkov

    semacam ulasan "pendek"... seolah-olah mereka sedang terburu-buru di suatu tempat