Dasar-dasar Pengembangan API REST dan RESTful
Pengembang web sering dibicarakan Prinsip REST dan arsitektur data yang tenang, karena ini merupakan aspek penting dari perkembangan modern, tetapi kadang-kadang bisa sangat membingungkan. REST bukanlah teknologi itu sendiri, melainkan metode pembuatan API dengan prinsip organisasi tertentu. Prinsip-prinsip ini adalah untuk memandu pengembang, dan menciptakan lingkungan yang lebih universal untuk memproses permintaan API.
Dalam posting ini, saya ingin menjelaskan praktik pembangunan yang tenang dari sudut pandang burung. Saya ingin menangani itu apa daripada bagaimana. Meskipun saya akan menyentuh pada kedua bidang, posting ini dibuat untuk siapa saja yang tertarik dalam pengembangan web, tetapi tidak dapat memahami konsep REST APIs.
ISTIRAHAT Untuk Pengembang Web
Singkatan singkatan singkatan Transfer Negara Representasi. Ini mungkin terdengar agak membingungkan, dan entri wiki membuatnya terdengar lebih membingungkan. Tetapi adalah mungkin untuk menyederhanakan terminologinya.
REST hanyalah serangkaian pedoman dan gaya arsitektur yang digunakan untuk transmisi data. Ini umumnya diterapkan pada aplikasi web, tetapi dapat mengirimkan data ke perangkat lunak juga.
API singkatan singkatan dari Application Programming Interface, yang merupakan metode dari menghubungkan dengan perpustakaan atau aplikasi lain. Windows memiliki banyak API, dan Twitter juga memiliki API web, meskipun mereka melakukan tugas yang berbeda dengan tujuan yang berbeda.
Menggabungkan semuanya, API RESTful adalah API yang mengikuti arsitektur REST.
Apa sebenarnya arsitektur REST?
Di sinilah sulit untuk meletakkan spesifik. Namun ada beberapa konstanta arsitektur, seperti:
- Konsistensi di seluruh API
- Keberadaan tanpa kewarganegaraan, mis. tidak ada sesi sisi server
- Penggunaan Kode status HTTP jika perlu
- Penggunaan URL titik akhir dengan hierarki logis
- Versi dalam URL daripada di header HTTP
Tidak ada pedoman yang terlalu spesifik seperti spesifikasi W3C HTML5 yang dapat menyebabkan kebingungan, dan racun ketidakpastian di sekitar terminologi REST.
Juga, daftar di atas seharusnya tidak dianggap sebagai aturan yang sulit dan cepat, meskipun mereka benar dari sebagian besar API TENANG modern.
REST adalah a metodologi ringan yang membuatnya sempurna untuk data HTTP. Inilah sebabnya mengapa REST menjadi sangat populer di web, dan mengapa itu secara luas dianggap sebagai pilihan terbaik untuk pengembangan API.
Seperti yang dikatakan Vinay Sahni, “API adalah UI pengembang.” Semuanya harus mudah digunakan, dan memberikan pengalaman pengguna yang hebat. API yang tenang bertujuan untuk melakukan hal itu.
Takeaways Utama Untuk API SISA
Kiat-kiat ini berada dalam konteks API khusus untuk aplikasi web. Ini artinya HTTP adalah persyaratan, dan itu sering berarti demikian data API di-host di server eksternal. Mari kita periksa bagaimana RESTful APIs bekerja di sisi pengguna API.
Pengguna API adalah pengembang web yang dapat membuat skrip yang terhubung ke server API eksternal, kemudian data yang diperlukan dilewatkan melalui HTTP. Pengembang kemudian dapat menampilkan data di situs web mereka tanpa memiliki akses pribadi ke server eksternal (seperti menarik data Twitter).
Secara umum ada empat perintah biasanya akses RESTful APIs:
MENDAPATKAN
untuk mengambil objekPOS
untuk membuat objek baruTARUH
untuk memodifikasi atau mengganti objekMENGHAPUS
untuk menghapus objek
Masing-masing metode ini harus diteruskan dengan panggilan API untuk memberi tahu server apa yang harus dilakukan.
Sebagian besar API web hanya izinkan MENDAPATKAN
permintaan untuk menarik data dari server eksternal. Otentikasi adalah opsional, tetapi tentu saja ide yang baik ketika memungkinkan perintah yang berpotensi merusak suka TARUH
atau MENGHAPUS
.
Namun tidak banyak API yang tenang bahkan sejauh ini. Pertimbangkan Pokéapi yang merupakan basis data API Pokémon gratis. Ini terbuka untuk umum dengan pembatasan tarif yang layak (membatasi pengguna untuk sejumlah permintaan API selama periode waktu tertentu), tetapi hanya memungkinkan MENDAPATKAN
metode untuk mengakses sumber daya. Ini dapat secara bahasa sehari-hari disebut a API khusus konsumsi.
Jenis pengembalian juga penting, dan harus pertahankan homogenitas untuk semua sumber daya. JSON adalah jenis pengembalian populer dengan spesifikasi online yang menjelaskan struktur data yang tepat.
API yang tenang digunakan kata benda untuk objek API, dan kata kerja untuk melakukan tindakan pada benda-benda itu. Otentikasi dapat menjadi bagian dari ini, pembatasan tingkat juga dapat menjadi bagian dari ini. Tetapi API yang sangat sederhana dapat bertahan tanpa banyak memperhatikan keterbatasan pengguna.
Mengakses Sumber Daya API
API publik biasanya dapat diakses dari alamat situs web langsung. Ini berarti struktur URL itu penting, dan harus digunakan hanya untuk permintaan API.
Beberapa URL dapat menyertakan direktori awalan seperti / v2 /
untuk versi 2 yang diperbarui dari API sebelumnya. Ini umum untuk pengembang yang tidak ingin mendepresiasi API 1.x mereka, tetapi masih ingin menawarkan struktur terbaru.
Saya sangat menikmati postingan ini struktur URL dasar dan contoh dari layanan lain.
Perhatikan bahwa titik akhir itu mengembalikan data akan berubah secara dramatis didasarkan pada Metode HTTP. Sebagai contoh, MENDAPATKAN
mengambil konten, sementara POS
membuat konten baru. Permintaan dapat menunjuk ke titik akhir yang sama, tetapi hasilnya bisa sangat berbeda.
Melihat contoh online dapat membantu Anda memahami konsep dengan lebih jelas. Kami sudah melihat Pokeapi, tetapi di sini ada beberapa lainnya contoh API dunia nyata untuk meneliti:
- API Reddit
- API GitHub
- API Flickr
- API Pinterest
Membangun API Anda Sendiri
Proses membangun API Anda sendiri seharusnya tidak dianggap enteng, tetapi juga tidak serumit yang Anda bayangkan. Itu membutuhkan memahami pola desain API dan praktik terbaik untuk membangun sesuatu yang bernilai nyata.
Setiap API harus terhubung ke server Anda untuk mengembalikan data dari beberapa jenis. Anda tidak hanya perlu menulis kode untuk melakukan itu, tetapi Anda juga perlu memformat data yang dikembalikan. Persyaratan potensial lainnya termasuk otentikasi dan pembatasan tingkat, jadi membangun API tentu bukan untuk orang yang lemah hati.
Tapi mari kita lihat beberapa prinsip dasar arsitektur API.
Bangun Titik Akhir
Salah satu aspek pengembangan API adalah membangun titik akhir. Kapan menciptakan sumber daya Anda ingin menggunakan kata benda, bukan kata kerja. Ini berarti data API harus mengembalikan seseorang, tempat, atau sesuatu, paling sering itu suatu hal dengan atribut spesifik (misalnya tweet dan semua metadata-nya).
Mungkin sulit belajar menyebutkan nama kata benda, tetapi ini adalah aspek penting dari pengembangan API. Penyederhanaan adalah yang terbaik jika memungkinkan.
Debat besar adalah tunggal vs jamak kata benda. Jika Anda membuat Twitter API, Anda mungkin memiliki grup objek terlebih dahulu (yaitu tweet), kemudian item objek kedua (mis. Tweet ID).
$ / tweet / 15032934882934 $ / tweets / 15032934882934
Dalam hal ini, saya berpendapat bentuk tunggal terlihat lebih baik. Ini benar terutama ketika hanya satu sumber daya yang dikembalikan. Tetapi tidak ada jawaban yang benar didokumentasikan 100%, jadi lakukan apa pun yang paling cocok untuk proyek Anda.
Setel Jenis Pengembalian
Pertimbangan lain adalah mengembalikan tipe data. Sebagian besar pengguna web mengharapkan konten JSON, jadi itu kemungkinan pilihan terbaik. XML adalah pilihan lain jika Anda ingin menawarkan keduanya. Namun JSON adalah jenis pengembalian API mendasar di antara pengembang web.
Ada banyak lagi yang masuk ke pengembangan API, jadi saya sarankan bermain dengan API terlebih dahulu. Dengan cara ini Anda dapat melihat bagaimana pengembang lain membangun API mereka, dan mudah-mudahan Anda akan terbiasa dengan persyaratan khusus.
Jika Anda baru memulai, silakan pertimbangkan membaca tutorial dev ini:
- Situs Tutorial API SISA
- Menulis API SISA Sederhana
- Membangun Layanan Web yang TENANG
Sumber Daya Lebih Lanjut
Cara terbaik untuk mempelajari pengembangan aplikasi web adalah melalui latihan. Teori yang diberikan selalu layak dipelajari, karena memungkinkan Anda untuk berkomunikasi dengan pengembang dan memahami cara kerja berbagai hal.
Tetapi tempat yang baik untuk memulai dengan pengembangan API adalah menghubungkan ke API lain pertama. Pelajari dasar-dasar koneksi sisi klien, dan dari sana Anda dapat beralih ke pengembangan API sisi-server dengan membuat API Anda sendiri dari awal.
Jika itu tujuan Anda, harap pertimbangkan sumber daya berikut untuk membantu sepanjang perjalanan Anda.
Buku
- RULebook Design Rulebook API
- API Web TENANG
- Cookbook Layanan Web RESTful
- REST Tanpa Gangguan: Panduan untuk Merancang API Sempurna
Artikel
- Panduan Pemula untuk HTTP dan REST
- Membuat API TENANG
- Panduan Penamaan Sumberdaya SISA
- Membuat API SISA menggunakan MEAN Stack