Daftar Isi[Bersembunyi][Menunjukkan]
- 1. Apa yang Anda pahami tentang REST?
- 2. Apa yang Anda maksud dengan REST API?
- 3. Apa sebenarnya URI itu?
- 4. Apa karakteristik dari RESTful Web Services?
- 5. Apa prinsip panduan REST?
- 6. Sebutkan metode HTTP yang didukung REST.
- 7. Jelaskan batasan yang ditempatkan oleh antarmuka yang konsisten.
- 8. Apa sebenarnya Sumber Daya REST itu?
- 9. Apa arti JAX-RS bagi Anda?
- 10. Apa yang membedakan AJAX dan REST satu sama lain?
- 11. Bisakah Anda membuat daftar beberapa kelemahan layanan web RESTful?
- 12. Apa yang membedakan teknik PUT dan POST satu sama lain?
- 13. Bagaimana Anda menguji layanan web RESTful?
- 14. Jelaskan REST API di dunia nyata.
- 15. Bagaimana Arsitektur Layanan Mikro Bekerja?
- 16. Apa sebenarnya caching itu?
- 17. Jelaskan muatan.
- 18. Bedakan SOAP Vs REST?
- 19. Dapatkah protokol keamanan lapisan transport (TLS) digunakan dengan REST?
- 20. Metode idempoten: apa itu? Bagaimana penerapannya pada dunia layanan web RESTful?
- 21. Apa fungsi dari HTTP Basic Authentication?
- 22. Apakah menurut Anda GraphQL adalah pilihan terbaik untuk membuat arsitektur layanan mikro?
- 23. Apa perbedaan utama antara metode HTTP yang aman dan idempoten?
- 24. Apa yang disiratkan oleh JAX-RS API oleh RESTful Root Resource Classes?
- 25. Apa sebenarnya Postman itu, dan mengapa digunakan?
- 26. Bagaimana REST API tetap aman?
- Kesimpulan
Evolusi REST telah membuat API sangat mudah diakses sekaligus mengungkapkan kekuatan dan potensi penuhnya. REST API mudah dibuat dan disimpan di cache karena arsitekturnya yang berorientasi sumber daya.
Selain itu, sepanjang waktu, RESTful API adalah pelopor perkembangan signifikan lainnya seperti komputasi awan dan desain berbasis layanan mikro.
Oleh karena itu, tidak mengherankan jika pengembang REST API diminati saat ini mengingat bagaimana mereka memberikan keunggulan kompetitif bagi bisnis yang menggunakan layanan RESTful. REST API adalah tren desain yang populer.
Banyak perusahaan IT menginginkan pengetahuan REST API dari pengembang perangkat lunak dan tanyakan tentang hal itu dalam wawancara teknis.
Berikut adalah beberapa pertanyaan wawancara REST API paling umum yang akan membantu Anda siap untuk wawancara di berbagai perusahaan jika Anda ingin bekerja di bidang pengembangan REST API.
1. Apa yang Anda pahami tentang REST?
REST merupakan paradigma arsitektur untuk merancang aplikasi berbasis web yang berbasis pada Hypertext Transfer Protocol (HTTP).
REST mendefinisikan standar tertentu yang harus dipenuhi oleh layanan web agar dianggap RESTful. Rekomendasi ini menjamin bahwa permintaan dan sumber daya ditransmisikan dengan cepat dan efektif antara klien dan server menggunakan protokol HTTP standar.
2. Apa yang Anda maksud dengan REST API?
Tautan perangkat lunak ke perangkat lunak yang dikenal sebagai antarmuka pemrograman aplikasi memungkinkan komunikasi dan berbagi data antara program independen. Misalnya, situs web berita dapat menggunakan API Twitter untuk menemukan tweet terkait secara otomatis dan mengintegrasikannya ke dalam berita.
API yang mengikuti prinsip REST dikenal sebagai REST API, terkadang dikenal sebagai RESTful API. Dalam REST API, setiap bagian data ditangani sebagai sumber daya dan diberi identitas sumber daya standar (URI) yang berbeda.
Misalnya, API Twitter menjadikan setiap tweet sebagai sumber daya yang dapat diambil yang tersedia untuk klien. Twitter API dapat digunakan oleh pengguna untuk memposting tweet dan melakukan tugas situs web lainnya.
3. Apa sebenarnya URI itu?
A jaringan komputer sumber daya dapat dirujuk menggunakan URI atau pengidentifikasi sumber daya seragam. Ini berfungsi sebagai sarana untuk memisahkan satu sumber daya dari yang lain. Sumber mungkin atau mungkin tidak online.
Karena struktur standarnya, URI membuatnya mudah untuk terhubung bahkan ke berbagai jenis sumber daya. Lokasi atau nama sumber daya disertakan dalam URI bersama dengan serangkaian karakter.
URI terdiri dari jalur, skema, kueri, dan elemen lain tetapi tidak termasuk protokol.
Menggunakan protokol, URL (Uniform Resource Locators) digunakan untuk menemukan sumber daya di internet atau dapat diakses melaluinya.
4. Apa karakteristik dari RESTful Web Services?
- Paradigma Client-Server adalah dasar dari layanan.
- Layanan dapat mengakses sumber daya melalui penggunaan URI.
- Layanan ini menggunakan Protokol HTTP untuk memperoleh data/sumber daya, menjalankan kueri, dan melakukan tugas lainnya.
- Pesan adalah nama metode yang digunakan untuk berkomunikasi antara klien dan server.
- Layanan ini juga dapat mengimplementasikan pola arsitektur REST menggunakan layanan SOAP.
- Untuk mengurangi panggilan server untuk jenis permintaan berulang yang sama, layanan ini juga menggunakan gagasan caching.
5. Apa prinsip panduan REST?
Lima kriteria harus dipenuhi oleh REST API:
Pemisahan server-klien: Hanya serangkaian permintaan dan balasan yang dapat digunakan untuk berkomunikasi antara klien dan server. Hanya klien dan server yang masing-masing dapat mengirim permintaan dan jawaban. Ide langsung ini memungkinkan kedua belah pihak untuk berfungsi secara independen satu sama lain.
Uniform Interface: Harus ada protokol yang seragam untuk semua koneksi client-server. Protokol untuk REST ini adalah HTTP. Karena setiap aplikasi meminta dan mengirim data menggunakan bahasa yang sama, antarmuka yang konsisten membuat integrasi menjadi lebih sederhana.
Stateless: Server tidak menyimpan catatan permintaan atau jawaban sebelumnya dalam komunikasi stateless. Setiap permintaan dan jawaban memberikan semua detail yang diperlukan untuk menyelesaikan pertukaran. Komunikasi stateless meningkatkan kecepatan, menghemat memori, dan mengurangi tekanan pada server. Selain itu, menghindari potensi permintaan gagal karena data yang tidak lengkap.
Sistem berlapis: Server yang berada di antara klien dan server API disebut sebagai lapisan. Server tambahan ini melakukan berbagai layanan, seperti mendeteksi spam dan mengoptimalkan kecepatan. Lapisan dalam REST bersifat modular, artinya dapat ditambahkan dan dihapus tanpa memengaruhi komunikasi antara klien dan server API.
Dapat disimpan dalam cache: Klien dapat menyimpan sumber daya apa pun untuk meningkatkan kecepatan jika jawaban server menunjukkan apakah sumber daya tersebut dapat disimpan dalam cache atau tidak.
Pengkodean sesuai permintaan: Sebagai tanggapan, API dapat mengirimkan kode komputer yang dapat dieksekusi ke pelanggan. Aplikasi klien kemudian dapat menjalankan kode pada bagian belakangnya sendiri.
6. Sebutkan metode HTTP yang didukung REST.
Metode HTTP yang didukung REST adalah:
- GET: Metode ini meminta sumber daya di URL yang ditentukan. Badan permintaan tidak boleh disertakan karena akan diabaikan. Dimungkinkan untuk menyimpannya secara lokal atau di server.
- POST: Metode ini mengirimkan data ke layanan untuk diproses, dan layanan biasanya harus mengembalikan sumber daya baru atau yang diubah.
- PUT: Sumber daya diperbarui di URL permintaan.
- DELETE: Sumber daya dihapus di URL permintaan.
- Opsi: Ini mengidentifikasi metode yang didukung.
- HEAD: Metadata URL permintaan dikembalikan.
7. Jelaskan batasan yang ditempatkan oleh antarmuka yang konsisten.
Untuk memisahkan klien dari server, diperlukan antarmuka yang konsisten.
Untuk mencapai antarmuka yang konsisten, empat kendala berikut diperlukan:
- Identifikasi sumber daya: Permintaan klien harus menggunakan ID sumber daya standar untuk mengidentifikasi sumber daya (URI)
- Manipulasi sumber daya menggunakan representasi ini: Klien memiliki semua informasi yang diperlukan untuk dapat mengubah status sumber daya ketika mereka mendapatkan representasi sumber daya dari server.
- Pesan deskriptif diri: Pesan mencakup semua metadata dan informasi lain yang diperlukan penerima untuk memahaminya.
- Hypermedia sebagai mesin status aplikasi: Saluran untuk komunikasi klien-server adalah hypermedia, seperti HTML, dan klien tidak memerlukan dokumentasi khusus API untuk memahami jawaban server.
8. Apa sebenarnya Sumber Daya REST itu?
Sumber daya adalah komponen mendasar dari layanan web RESTful dalam arsitektur REST. Mereka menyertakan semua informasi penting yang perlu diakses oleh klien API.
Semua jenis sumber daya, seperti halaman HTML, gambar, video, atau apa pun yang diperlukan untuk aktivitas API, dapat diakses melalui server dalam sistem klien-server.
Sumber daya diidentifikasi oleh Uniform Resource Identifier. Teks, JSON, atau XML adalah representasi sumber daya yang dapat diterima. Karena itu, tidak ada batasan pada format representasi.
9. Apa arti JAX-RS bagi Anda?
Membuat layanan web RESTful di Java menjadi lebih mudah berkat Java API for RESTful web Services, yang sering dikenal sebagai JAX-RS. Pengembang dapat menjelaskan sumber daya dan operasi yang dapat dilakukan pada mereka menggunakan anotasi yang disediakan.
10. Apa yang membedakan AJAX dan REST satu sama lain?
ajax:
- Ajax adalah sekelompok teknologi yang memungkinkan pembaruan dinamis dari user interface elemen tanpa harus memuat ulang halaman.
- Ajax menghapus komunikasi asinkron antara klien dan server.
ISTIRAHAT:
- REST menuntut komunikasi antara server dan klien.
- Pemanfaatan sumber daya penting untuk struktur URL dan pola permintaan/tanggapan yang digunakan oleh REST.
11. Bisakah Anda membuat daftar beberapa kelemahan layanan web RESTful?
Sesi tidak dapat dipertahankan karena layanan mematuhi gagasan keadaan tanpa kewarganegaraan. (Klien bertanggung jawab untuk meneruskan id sesi selama simulasi sesi.)
Kendala keamanan tidak mendasar untuk REST. Protokol yang menggunakannya mewarisi tindakan pencegahan keamanan. Oleh karena itu, berhati-hatilah saat menerapkan langkah-langkah keamanan, seperti mengintegrasikan otentikasi berbasis SSL/TLS, adalah penting.
12. Apa yang membedakan teknik PUT dan POST satu sama lain?
TARUH:
- Tidak ada cache untuk tanggapan PUT.
- Idempoten (yaitu beberapa permintaan akan menghasilkan hasil yang sama)
- payload permintaan memperbarui atau mengganti sumber daya target.
POS:
- idempoten tidak (yaitu, beberapa permintaan akan menghasilkan kelipatan dari sumber daya yang sama)
- Server web memproses muatan permintaan berdasarkan sumber daya yang dimaksud.
- Jika header kontrol cache yang sesuai disertakan, balasan POST dapat di-cache.
13. Bagaimana Anda menguji layanan web RESTful?
Pengujian layanan web RESTful dapat dibantu oleh sejumlah alat, termasuk Swagger dan Postman. Memeriksa parameter permintaan seperti parameter kueri, tajuk, dan tajuk respons dimungkinkan oleh banyaknya fitur yang terakhir.
Tukang pos dapat digunakan untuk membuat permintaan ke titik akhir dan menunjukkan hasilnya. Dan XML dan JSON dapat dibuat dari jawaban ini.
Postman dan Swagger keduanya menyediakan fungsionalitas yang sangat sebanding. Di sisi lain, Swagger juga menawarkan kemampuan seperti dokumentasi titik akhir.
14. Jelaskan REST API di dunia nyata.
- Situs web perjalanan dan tiket dapat memanfaatkan waktu dan harga penerbangan yang disediakan maskapai melalui API.
- Agar aplikasi pemetaan dan navigasi (seperti Google Maps) dapat menggunakannya, agen transportasi umum sering kali membuat data mereka tersedia untuk umum secara real-time melalui API.
- Aplikasi cuaca menggunakan API terbuka yang bertukar data cuaca untuk menampilkan informasi cuaca.
- Pengembang dapat mengakses data pemetaan Google Maps melalui sejumlah API yang dihostingnya. API ini digunakan oleh pengembang untuk menyematkan peta dinamis di aplikasi dan situs web mereka.
15. Bagaimana Arsitektur Layanan Mikro Bekerja?
- Permintaan dikirim oleh berbagai pelanggan menggunakan berbagai perangkat.
- Setelah mengkonfirmasi identitas klien, penyedia identitas memberikan token keamanan.
- Permintaan klien dikelola oleh API Gateway.
- Semua materi sistem dipertahankan sebagai konten statis.
- Alat manajemen memeriksa keseimbangan layanan pada node dan kesalahan apa pun.
- Menemukan jalur komunikasi antara layanan mikro dibantu oleh penemuan layanan.
- Pusat data dan server proxy membentuk sistem jaringan tersebar yang disebut jaringan pengiriman konten.
- Layanan jarak jauh menyediakan akses informasi dari jarak jauh.
16. Apa sebenarnya caching itu?
Praktek menyimpan sementara salinan jawaban server di suatu tempat (seperti memori komputer) untuk mengaksesnya nanti lebih cepat dikenal sebagai caching.
Caching meningkatkan kecepatan server saat menggunakan REST API dengan mengurangi jumlah pekerjaan yang harus dilakukan server untuk memenuhi permintaan. Aplikasi yang menggunakan API berjalan lebih cepat berkat caching karena mereka tidak perlu mengirimkan permintaan baru setiap kali mereka membutuhkan sumber daya.
Bidang Kontrol-Cache header respons HTTP berisi informasi tentang berapa lama sumber daya dapat di-cache oleh klien sebelum perlu diakses lagi.
17. Jelaskan muatan.
Payload di REST mengacu pada informasi yang terkandung dalam isi respons HTTP. Pelanggan menggunakan teknik GET untuk meminta data yang dimaksud.
Dokumen yang berisi teks tweet dan file apa pun yang diperlukan untuk menempatkan tweet di situs web akan disertakan dalam muatan, misalnya, jika Anda meminta Twitter API untuk tweet tertentu. Selain itu, payload dapat dimasukkan dalam permintaan HTTP menggunakan metode POST.
18. Bedakan SABUN Vs REST?
- Tidak seperti SOAP, yang hanya dapat menangani XML, REST memungkinkan rentang format sumber daya yang lebih luas, termasuk XML, teks, HTML, gambar, video, dan banyak lagi.
- Ketika keamanan sangat penting untuk aplikasi online, SOAP sangat membantu. REST tidak dapat digunakan ketika transaksi harus diselesaikan dengan aman karena tidak terlalu aman.
- Karena SOAP hanyalah sebuah protokol, REST dapat menggunakannya dalam layanan webnya tetapi tidak sebaliknya.
- Sementara REST hanyalah pola arsitektur yang digunakan untuk mengembangkan layanan web dan mematuhi batasan tertentu seperti pengaturan client-server, statelessness, respons yang dapat di-cache, sistem berlapis, dan antarmuka yang konsisten, SOAP adalah protokol yang beroperasi pada standar tertentu yang harus dipatuhi dengan ketat. ke.
- Sementara REST menggunakan pengidentifikasi sumber daya universal (URI), SOAP menggunakan antarmuka layanan untuk menyediakan kemampuannya ke aplikasi klien. REST memiliki kebutuhan bandwidth yang lebih rendah daripada SOAP karena pesan SOAP lebih banyak informasi.
19. Dapatkah protokol keamanan lapisan transport (TLS) digunakan dengan REST?
Sebenarnya, kita bisa. Komunikasi klien dan server REST dienkripsi melalui TLS, dan protokol juga memberi klien cara untuk mengotentikasi server.
Karena itu adalah pengganti Secure Socket Layer, itu digunakan untuk komunikasi aman (SSL). Menerapkan layanan web RESTful berhasil dengan HTTPS karena bekerja sama secara efektif dengan TLS dan SSL.
REST mewarisi karakteristik protokol yang diterapkannya, yang merupakan satu hal yang perlu diperhatikan di sini. Akibatnya, perlindungan keamanan bergantung pada protokol yang digunakan REST.
20. Metode idempoten: apa itu? Bagaimana penerapannya pada dunia layanan web RESTful?
Ketika URI sama, beberapa metode HTTP dalam permintaan memiliki dampak yang sama pada server baik dikirim sekali atau beberapa kali. Teknik idempoten adalah apa yang dikenal sebagai.
Misalnya, tidak peduli berapa kali URI menggunakan metode GET dijalankan, server akan selalu mengalami hasil yang sama. Metode idempoten termasuk GET, PUT, dan PATCH, untuk beberapa nama.
Metode HTTP idempoten adalah beberapa yang digunakan oleh RESTful aplikasi web. Mereka diperlukan untuk menjamin konsistensi dalam aktivitas layanan web RESTful.
Pelanggan yang menggunakan REST API dapat membuat kesalahan kode yang memaksa REST API untuk membuat permintaan berulang yang tidak disengaja. Panggilan ini berpotensi menyalahgunakan sumber daya.
21. Apa fungsi dari HTTP Basic Authentication?
Saat menggunakan Otentikasi Dasar sebagai bagian dari API, pengguna harus mengirimkan nama pengguna dan kata sandi, yang digabungkan oleh browser dalam bentuk "nama pengguna: kata sandi" dan dikodekan base64.
Pada setiap permintaan HTTP dari browser, nilai yang disandikan dikirimkan sebagai nilai untuk header "Otorisasi". Karena kredensial baru saja dikodekan, disarankan untuk menggunakan formulir ini saat mengirim permintaan HTTPS karena tidak aman dan dapat dicegat oleh siapa pun jika protokol keamanan tidak digunakan.
22. Apakah menurut Anda GraphQL adalah pilihan terbaik untuk membuat arsitektur layanan mikro?
Layanan mikro dan GraphQL berjalan dengan sempurna karena GraphQL merahasiakan arsitektur layanan mikro Anda dari klien Anda.
Dari ujung depan, Anda ingin semua data Anda berasal dari satu API, sedangkan dari ujung belakang, Anda ingin membaginya menjadi layanan mikro. Teknik terbaik yang saya sadari untuk mencapai keduanya adalah dengan menggunakan GraphQL.
Ini memungkinkan Anda untuk membagi backend Anda menjadi layanan mikro sambil tetap memberikan setiap aplikasi satu API dan memungkinkan penggabungan data dari berbagai layanan.
23. Apa perbedaan utama antara metode HTTP yang aman dan idempoten?
Metode idempoten menghasilkan hasil yang sama ketika dipanggil sekali atau beberapa kali melalui permintaan yang sama. Metode PUT adalah idempoten.
Semua cara aman adalah idempoten, tetapi tidak semua metode idempoten aman karena metode aman tidak mengubah sumber daya. Misalnya, GET aman karena hanya mengambil data dan tidak mengubah sumber daya.
Selain itu, idempoten, artinya akan selalu mengembalikan jawaban yang sama saat dipanggil.
24. Apa yang disiratkan oleh JAX-RS API oleh RESTful Root Resource Classes?
Java Enterprise Edition menyediakan kelas dan antarmuka yang mematuhi persyaratan API JAX-RS. Dengan bantuan JAX-RS, membuat layanan web Java dalam gaya arsitektur REST menjadi lebih mudah.
Di API JAX-RS, kelas sumber daya root hanyalah "objek java lama biasa", atau POJO. Untuk mengimplementasikan sumber daya web yang diperlukan, mereka menggunakan anotasi JAX-RS.
Mereka memiliki anotasi @path atau setidaknya salah satu metode mereka memiliki anotasi @path. Mereka dapat diringkas sebagai kelas Java dengan metode untuk menangani titik akhir API.
25. Apa sebenarnya Postman itu, dan mengapa digunakan?
Alat pengembangan API yang disebut Postman digunakan untuk membuat, menguji, dan memodifikasi API. Alat ini dapat digunakan oleh pengembang untuk fitur apa pun yang mereka butuhkan untuk API. Ini menyederhanakan dan memfasilitasi pekerjaan pengembang.
Postman memudahkan untuk membuat berbagai kueri HTTP, termasuk GET, POST, PUT, dan PATCH, menyimpan lingkungan untuk digunakan nanti, dan mengonversi API ke kode dalam sejumlah bahasa berbeda.
Setiap tahap siklus API dibuat lebih sederhana dengan Postman, dan kerja sama disederhanakan untuk pengembangan API yang lebih cepat.
Selain itu, memungkinkan pengembang untuk mengelola dokumentasi, spesifikasi, kasus uji, proses, dan katalog API.
26. Bagaimana REST API tetap aman?
Karena REST API tidak menggunakan pengamanan keamanan yang ketat seperti SOAP API, data sensitif tidak boleh dikirim atau diambil menggunakan mereka.
Namun, REST API yang tepercaya terus mengintegrasikan kontrol keamanan untuk transmisi data yang aman dan dapat diandalkan.
- Otentikasi dan otorisasi: Setiap permintaan yang dibuat ke API harus melewati dua pemeriksaan ini. Memverifikasi identitas klien melalui otentikasi dan memvalidasi bahwa mereka memiliki wewenang untuk mengakses sumber daya yang diminta melalui otorisasi adalah dua proses yang berbeda.
- Validasi: Sebelum API memberikan akses ke sumber dayanya, permintaan masih harus diperiksa untuk kemungkinan kode berbahaya setelah autentikasi dan otorisasi. Dengan demikian, server akan terbuka untuk serangan injeksi.
- Validasi: Sebelum API memberikan akses ke sumber dayanya, permintaan masih harus diperiksa untuk kemungkinan kode berbahaya setelah autentikasi dan otorisasi. Dengan demikian, server akan terbuka untuk serangan injeksi.
- Enkripsi: Enkripsi TLS/SSL melindungi koneksi antara klien dan server dan mencegah peretas mencegat permintaan dan jawaban.
- Teknik pembatasan kecepatan, seperti pembatasan dan pembatasan, melindungi server dari serangan brute force seperti DDoS yang bertujuan untuk menurunkan atau menghancurkannya.
- Tidak ada informasi sensitif dalam URI: URI sumber daya tidak boleh berisi data yang dilindungi (seperti nama pengguna, sandi, atau token autentikasi).
Kesimpulan
Selamat! Beberapa pertanyaan wawancara REST API dasar hingga kompleks dan solusinya masing-masing sekarang ada di ujung jari Anda.
Sekarang setelah Anda memiliki konsep yang baik tentang bagaimana menanggapi beberapa pertanyaan wawancara REST API yang khas, Anda dapat melanjutkan untuk menanggapi wawancara. Langkah selanjutnya tergantung pada tujuan Anda.
Mengunjungi Seri Wawancara dengan Hashdork untuk mempersiapkan wawancara.
Tinggalkan Balasan