Laman » Pengekodan » Asas Pembangunan API REST dan RESTful

    Asas Pembangunan API REST dan RESTful

    Pembangun laman web sering bercakap tentang Prinsip REST dan senibina data RESTful, kerana ia adalah aspek penting dalam perkembangan moden, tetapi kadang-kadang ia boleh menjadi sangat mengelirukan. REST bukan teknologi sendiri, tetapi sebaliknya kaedah untuk membuat API dengan prinsip organisasi tertentu. Prinsip-prinsip ini adalah untuk membimbing pemaju, dan mewujudkan persekitaran yang lebih universal untuk memproses permintaan API.

    Dalam jawatan ini, saya ingin menerangkan amalan pembangunan yang teratur dari pandangan mata burung. Saya mahu mengatasi yang apa bukannya bagaimana. Walaupun saya akan menyentuh kedua-dua bidang, jawatan ini dibuat untuk sesiapa sahaja yang terlibat dalam pembangunan web, tetapi tidak dapat memahami konsep API REST.

    REST Untuk Pembangun Web

    REST adalah singkatan Pemindahan Negeri Perwakilan. Ini mungkin agak membingungkan, dan entri wiki menjadikannya lebih membingungkan. Tetapi adalah mungkin untuk memudahkan terminologi.

    REST hanya satu siri garis panduan dan gaya seni bina yang digunakan untuk penghantaran data. Ia lazimnya digunakan untuk aplikasi web, tetapi boleh menyalurkan data kepada perisian juga.

    API singkatan bermaksud Interface Pemrograman Aplikasi, iaitu kaedah menyambungkan dengan perpustakaan atau aplikasi lain. Windows mempunyai banyak API, dan Twitter mempunyai API web juga, walaupun mereka melakukan tugas yang berbeza dengan matlamat yang berbeza.

    Menggabungkannya bersama-sama, API RESTful adalah API yang mengikuti seni bina REST.

    Apa sebenarnya seni bina REST itu?

    Di sinilah sukar untuk meletakkan spesifik. Walau bagaimanapun terdapat beberapa pemalar seni bina, seperti:

    • Ketekalan di seluruh API
    • Kewujudan tanpa kewarganegaraan, iaitu sesi sesi pelayan
    • Penggunaan Kod status HTTP di mana sesuai
    • Penggunaan Titik akhir URL dengan hierarki logik
    • Versi dalam URL bukannya di kepala HTTP

    Tidak ada pedoman khusus yang khusus seperti spesifikasi W3C HTML5 yang boleh menimbulkan kekeliruan, dan masalah ketidakpastian sekitar terminologi REST.

    Juga, senarai di atas tidak boleh dianggap peraturan yang keras dan cepat, walaupun ia adalah benar API RESTful yang paling moden.

    IMAGE: restful-api-design.readthedocs.io

    REST adalah a metodologi ringan yang menjadikannya sesuai untuk data HTTP. Inilah sebab mengapa REST menjadi begitu popular di web, dan mengapa ia dianggap sebagai pilihan terbaik untuk pembangunan API.

    Seperti yang dinyatakan oleh Vinay Sahni, “API adalah UI pemaju.” Semuanya harus mudah digunakan, dan memberikan pengalaman pengguna yang hebat. API RESTful bertujuan untuk berbuat demikian.

    Takeaways Utama Untuk API RESTful

    Petua ini adalah dalam konteks API ketat untuk aplikasi web. Ini bermakna itu HTTP adalah keperluan, dan ia selalunya bermakna data API dihoskan pada pelayan luaran. Mari kita periksa bagaimana API RESTful berfungsi di sisi pengguna API.

    Pengguna API adalah pemaju web yang boleh membina skrip yang menghubungkan ke pelayan API luaran, maka data yang diperlukan diluluskan melalui HTTP. Pemaju kemudian boleh memaparkan data di laman web mereka tanpa akses peribadi ke pelayan luaran (seperti menarik data Twitter).

    Secara umumnya terdapat empat arahan pernah akses API RESTful:

    1. GET untuk mendapatkan objek
    2. POST untuk mewujudkan objek baru
    3. LETAK untuk mengubah atau menggantikan objek
    4. DELETE untuk mengeluarkan objek

    Setiap kaedah ini sepatutnya diluluskan dengan panggilan API untuk memberitahu pelayan apa yang perlu dilakukan.

    Kebanyakan API web hanya membenarkan GET permintaan untuk menarik data keluar dari pelayan luaran. Pengesahan adalah pilihan, tetapi tentunya idea yang baik apabila membenarkan arahan yang berpotensi merosakkan seperti LETAK atau DELETE.

    Bagaimanapun tidak banyak API RESTful bahkan pergi sejauh ini. Pertimbangkan Pokéapi yang merupakan pangkalan data API Pokémon percuma. Ia dibuka kepada orang awam dengan had laju yang sah (membataskan pengguna kepada permintaan API tertentu dalam tempoh masa), tetapi hanya membenarkan GET kaedah untuk mengakses sumber. Ini boleh dikatakan bahasa a API penggunaan sahaja.

    Jenis pulangan juga penting, dan sepatutnya mengekalkan homogenitas untuk semua sumber. JSON adalah jenis pulangan yang popular dengan spesifikasi dalam talian yang menjelaskan struktur data yang betul.

    Penggunaan API RESTful kata benda untuk objek API, dan kata kerja untuk melakukan tindakan pada objek tersebut. Pengesahan boleh menjadi sebahagian daripada ini, mengehadkan kadar juga boleh menjadi sebahagian daripada ini. Tetapi API yang sangat mudah dapat dengan tanpa banyak perhatian kepada batasan pengguna.

    Mengakses Sumber API

    API Awam biasanya boleh diakses dari alamat laman web terus. Ini bermaksud struktur URL adalah penting, dan harus digunakan hanya untuk permintaan API.

    Beberapa URL boleh memasukkan direktori awalan seperti / v2 / untuk versi terkini 2 API terdahulu. Ini biasa bagi pemaju yang tidak mahu menurunkan API 1.x mereka, tetapi masih mahu menawarkan struktur terbaru.

    Saya benar-benar menikmati jawatan ini struktur URL asas dan contoh dari perkhidmatan lain.

    Perhatikan bahawa titik akhir itu data pengembalian akan berubah secara mendadak berdasarkan kepada Kaedah HTTP. Sebagai contoh, GET mengambil semula kandungan, sementara POST mencipta kandungan baru. Permintaan itu boleh menunjuk kepada titik akhir yang sama, tetapi hasilnya mungkin sangat berbeza.

    IMAGE: Dokumentasi API Reddit

    Melihat lebih banyak contoh dalam talian boleh membantu anda memahami konsep yang lebih jelas. Kami sudah melihat Pokeapi, tetapi di sini ada yang lain contoh API dunia nyata untuk belajar:

    • API Reddit
    • API GitHub
    • API Flickr
    • API Pinterest

    Membina API Anda Sendiri

    Proses membina API anda sendiri tidak boleh dianggap ringan tetapi ia juga tidak rumit seperti yang anda fikirkan. Ia mengambil masa pemahaman pola reka bentuk API dan amalan terbaik untuk membina sesuatu yang bernilai sebenar.

    Setiap API mestilah sambungkan ke pelayan anda untuk mengembalikan data sejenis. Bukan sahaja anda perlu menulis kod untuk melakukan itu, tetapi anda juga perlu memformat data kembali. Keperluan berpotensi lain termasuk pengesahan dan mengehadkan kadar, jadi membina API pastinya bukan untuk pengsan hati.

    Tetapi mari kita lihat beberapa asas asas seni bina API.

    Membina titik akhir

    Salah satu aspek pembangunan API ialah membina titik akhir. Bila mewujudkan sumber anda mahu menggunakan kata nama, bukan kata kerja. Ini bermakna data API harus memulangkan orang, tempat, atau benda, selalunya ia sesuatu yang mempunyai sifat khusus (contohnya tweet dan semua metadatanya).

    Ia boleh menjadi sukar untuk menamakan kata nama, tetapi ini adalah aspek penting dalam pembangunan API. Pemudahan adalah yang terbaik bila mungkin.

    Perdebatan besar adalah tunggal dan jamak kata nama. Jika anda membuat API Twitter, anda mungkin mempunyai kumpulan objek terlebih dahulu (iaitu tweet), maka item objek kedua (iaitu ID tweet).

     $ / tweet / 15032934882934 $ / tweets / 15032934882934 

    Dalam kes ini, saya akan berpendapat bahawa bentuk tunggal kelihatan lebih baik. Ini benar terutamanya apabila hanya satu sumber dikembalikan. Tetapi tidak ada jawapan yang betul 100% didokumentasikan, jadi lakukan apa yang paling sesuai untuk projek anda.

    Tetapkan Type Return

    Pertimbangan lain ialah kembali jenis data. Kebanyakan pengguna web menjangkakan kandungan JSON, jadi kemungkinan pilihan terbaik. XML adalah pilihan lain jika anda mahu menawarkan kedua-duanya. Bagaimanapun JSON adalah jenis pemulangan API asas di kalangan pemaju web.

    Terdapat banyak lagi yang masuk ke dalam pembangunan API, jadi saya cadangkan bermain dengan API terlebih dahulu. Dengan cara ini, anda dapat melihat bagaimana pemaju lain membina API mereka, dan semoga anda akan berkembang dengan biasa dengan keperluan biasa.

    Sekiranya anda baru bermula, sila pertimbangkan untuk menyunting tutorial dev ini:

    • Tapak Tutorial REST API
    • Menulis API REST Mudah
    • Membina Perkhidmatan Web RESTful

    Sumber Tambahan

    Cara terbaik untuk mempelajari pembangunan aplikasi web adalah melalui amalan. Teori yang diberikan memang bernilai belajar, kerana ia membolehkan anda berbincang dengan pemaju dan memahami bagaimana keadaan berfungsi.

    Tetapi tempat yang baik untuk bermula dengan pembangunan API adalah menyambung ke API lain pertama. Ketahui asas-asas sambungan pihak klien, dan dari sana anda boleh bergerak ke pembangunan API sisi pelayan dengan membuat API anda sendiri dari awal.

    Jika itu matlamat anda, sila pertimbangkan sumber berikut untuk membantu sepanjang perjalanan anda.

    Buku

    • Buku Rangka Reka API REST
    • API Web RESTful
    • Cookbook Perkhidmatan Web RESTful
    • REST yang tidak terganggu: Panduan untuk Merancang API Sempurna

    Artikel

    • Panduan Permulaan untuk HTTP dan REST
    • Mewujudkan API RESTful
    • Panduan Penamaan Sumber RESTful
    • Mewujudkan API REST menggunakan MEAN Stack