Saya mencoba menulis situs web bisnis "standar". Dengan "standar", maksud saya situs ini menjalankan HTML5, CSS, dan Javascript biasa untuk front-end, back-end (untuk memproses barang), dan menjalankan MySQL untuk database. Ini adalah situs CRUD dasar: front-end hanya membuat cantik apa pun yang ada di database; backend menulis ke database apa pun yang dimasukkan pengguna dan melakukan pemrosesan. Sama seperti kebanyakan situs di luar sana.
Dalam membuat repositori Github saya untuk memulai pengkodean, saya menyadari saya tidak mengerti perbedaan antara back-end front-end, dan API . Cara lain untuk mengutarakan pertanyaan saya adalah: di mana API masuk ke dalam gambar ini?
Saya akan daftar beberapa detail dan kemudian pertanyaan yang saya miliki - mudah-mudahan ini memberi kalian ide yang lebih baik tentang apa pertanyaan saya yang sebenarnya, karena saya sangat bingung sehingga saya tidak tahu pertanyaan spesifik untuk ditanyakan.
Beberapa detail lebih lanjut:
- Saya ingin mencoba pola Model-View-Controller. Saya tidak tahu apakah ini mengubah pertanyaan / jawaban.
- API akan TETAP
- Saya ingin back-end saya menggunakan API saya sendiri daripada membiarkan back-end untuk menipu dan memanggil permintaan khusus. Saya pikir gaya ini lebih konsisten.
Pertanyaan saya:
- Apakah front-end memanggil back-end yang memanggil API? Atau apakah front-end hanya memanggil API daripada memanggil back-end?
- Apakah back-end hanya menjalankan API dan API mengembalikan kontrol ke back-end (di mana back-end bertindak sebagai pengendali utama, mendelegasikan tugas)?
Jawaban panjang dan terperinci yang menjelaskan peran API di samping front-end back-end didorong. Jika jawabannya tergantung pada model pemrograman (model selain pola Model-View-Controller), tolong jelaskan cara berpikir lain tentang API ini. Terima kasih. Saya sangat bingung.
Mari kita buat sketsa arsitektur situs web "khas", dengan "front-end" dan "back-end". Dan karena ini adalah situs web, kami juga akan memiliki "klien". (Karena tidak ada cara untuk JavaScript di browser untuk memanggil MySQL di server secara langsung.)
Untuk kejelasan, istilah yang kami gunakan adalah:
Untuk program yang dirancang dengan baik, masing-masing komponen ini memiliki API pribadi untuk berkomunikasi dengan yang lain. Kode PHP "front-end" tidak mengeluarkan
SELECT
pernyataan SQL sewenang-wenang secara langsung, melainkan memanggil prosedur tersimpan, pra-otorisasi SQL, atau bahkan panggilan PHP yang berbeda ke instance PHP yang sama sekali berbeda yang berjalan pada server back-end . Prosedur yang disimpan ini atau panggilan HTTP yang berbeda itu sendiri merupakan API.Definisi tersebut tidak berubah bahkan jika kita mengizinkan ketidakmurnian dari desain kita. Jika
PHP
file Anda menulis dan mengirim string SQL langsung ke MySQL, ITU MASIH API , meskipun sangat tidak biasa yang tidak mungkin Anda ulangi.Perhatikan bahwa sangat mungkin untuk membuat front-end php Anda benar-benar sinkron, tanpa voodoo AJAX sama sekali. Jika Anda memanggil fungsi PHP eksternal yang sama dalam file sinkron tersebut, Anda bisa menganggapnya menggunakan API yang sama dengan verison sisi klien, meskipun penggunaan istilah "API" di sini mungkin tidak memberikan kejelasan nyata.
Lagipula, API sebagai Antarmuka Pemrograman Aplikasi dan benar-benar merujuk pada setiap kali satu program memanggil di luar prosesnya sendiri. Jika Anda menulis proyek yang memiliki front-end dan back-end, baik itu AJAX / PHP / MySQL seperti di atas atau MS Access / SQL Server, ada baiknya untuk menentukan kejelasan bagaimana Anda akan saling memanggil, jika tidak ada alasan lain selain membuatnya mudah untuk mengetahui ke mana harus mencari ketika sesuatu pecah.
(Dan topik API publik adalah sesuatu yang sama sekali berbeda. Dalam contoh kami di atas, hanya URL yang ditampilkan di klien adalah "API publik." Segala sesuatu yang lain, pada dasarnya, "pribadi." Seperti, Anda tidak mengharapkan kode apa pun di luar kendali Anda untuk memanggil API internal Anda, dan Anda langsung menolak hasil tersebut atau memiliki hak untuk melakukannya di masa depan.
sumber
API menangani permintaan http seperti GET, POST, FETCH, DELETE ... yang dapat digunakan tergantung pada token akses Anda untuk mengambil data dalam format tertentu seperti json, xml, dll.
"Data" ini dapat digunakan ke dalam aplikasi Anda sendiri untuk mendapatkan API (Application Programming Interface) yang merupakan layanan web yang dapat diakses publik untuk mengumpulkan data yang mungkin menarik bagi sebagian audiens.
Data ini mungkin mengembalikan sekumpulan data yang menyatakan gagal atau mengambil data dari server API itu
API dimaksudkan untuk menjadi ujung belakang sehingga dapat digunakan di lingkungan ujung depan apa pun. Ini berarti dapat digunakan di aplikasi web, android, ios ... yang dapat menangani permintaan https
sumber