Tutorial Layanan Web RESTful: Contoh REST API
⚡ Ringkasan Cerdas
Layanan Web RESTful menyediakan pendekatan yang ringan dan tanpa status bagi aplikasi untuk bertukar data melalui HTTP menggunakan kata kerja standar. Layanan ini mengekspos sumber daya melalui cara yang bersih. URLs, memungkinkan komunikasi yang terukur dan independen platform antara klien, server, perangkat seluler, serta platform cloud dan AI modern yang terdistribusi.
Apa itu Layanan Web Tenang?
Layanan Web yang Tenang RESTful adalah layanan yang ringan, mudah dipelihara, dan dapat diskalakan yang dibangun di atas arsitektur REST. Layanan Web RESTful mengekspos API dari aplikasi Anda secara aman, seragam, dan tanpa status (stateless) kepada klien yang memanggilnya. Klien yang memanggilnya kemudian dapat melakukan operasi yang telah ditentukan sebelumnya menggunakan layanan RESTful. Protokol yang mendasari REST adalah HTTP, dan REST merupakan singkatan dari Representational State Transfer.
Secara sederhana, REST mendefinisikan cara standar bagi sumber daya, seperti dokumen, gambar, atau catatan basis data, untuk dibuat, dibaca, diperbarui, dan dihapus melalui web. Karena bergantung pada HTTP biasa, hampir semua bahasa pemrograman atau perangkat dapat menggunakan layanan RESTful tanpa alat khusus.
Mengapa Menggunakan Layanan Web RESTful?
Sebelum membahas detail teknisnya, ada baiknya memahami mengapa REST menjadi begitu populer. Layanan Web RESTful menjadi terkenal karena alasan-alasan berikut:
1. Bahasa dan lingkungan yang heterogen – Ini adalah salah satu alasan mendasar, yang sama seperti yang telah kita lihat untuk SOAP juga.
- Hal ini memungkinkan aplikasi web yang dibangun menggunakan berbagai bahasa pemrograman untuk saling berkomunikasi.
- Dengan bantuan layanan Restful, aplikasi web ini dapat berada di lingkungan yang berbeda; beberapa di antaranya bisa berada di Windows, dan lainnya mungkin menggunakan Linux.
Pada akhirnya, apa pun lingkungannya, hasilnya harus selalu sama: aplikasi harus dapat saling berkomunikasi. Layanan web RESTful menawarkan fleksibilitas ini kepada aplikasi yang dibangun di atas berbagai bahasa pemrograman dan platform.
Gambar di bawah ini memberikan contoh aplikasi web yang memiliki kebutuhan untuk berkomunikasi dengan aplikasi lain seperti Facebook, Twitter, dan Google.
Jika sebuah aplikasi klien harus bekerja dengan situs-situs seperti Facebook dan Twitter, para pengembang biasanya perlu mengetahui bahasa dan platform apa yang digunakan situs-situs tersebut. Berdasarkan hal itu, mereka dapat menulis kode antarmuka, tetapi pendekatan ini bisa menjadi mimpi buruk untuk dipelihara.
Sebaliknya, Facebook, Twitter, dan Google Mengungkapkan fungsionalitasnya dalam bentuk layanan web Restful. Hal ini memungkinkan aplikasi klien mana pun untuk memanggil layanan web ini melalui REST, terlepas dari teknologi yang mendasarinya.
2. Peristiwa Perangkat – Saat ini, semuanya perlu diperbaiki Nomor WhatsApp perangkat, baik itu telepon seluler, notebook, atau bahkan sistem mobil.
Bayangkan betapa besarnya upaya yang dibutuhkan untuk membuat aplikasi pada perangkat ini agar dapat berkomunikasi dengan aplikasi web biasa. Sekali lagi, API Restful membuat pekerjaan ini lebih sederhana karena, seperti yang disebutkan pada poin pertama, Anda sebenarnya tidak perlu mengetahui lapisan dasar perangkat tersebut.
3. Peristiwa Awan – Semuanya beralih ke cloud. Aplikasi perlahan-lahan berpindah ke sistem berbasis cloud seperti... Azure or Amazon. Azure ke Amazon Menyediakan banyak API berdasarkan arsitektur RESTful. Oleh karena itu, aplikasi sekarang perlu dikembangkan sedemikian rupa sehingga kompatibel dengan cloud. Karena semua arsitektur berbasis cloud bekerja berdasarkan prinsip REST, masuk akal jika layanan web diprogram pada arsitektur berbasis REST untuk memanfaatkan layanan cloud sebaik mungkin.
Elemen Kunci yang Tenang
Layanan web REST telah berkembang pesat sejak awal kemunculannya. Pada tahun 2002, Web Consortium merilis definisi layanan web WSDL dan SOAP. Hal ini membentuk standar bagaimana layanan web diimplementasikan.
Pada tahun 2004, konsorsium web juga merilis definisi standar tambahan yang disebut RESTful. Selama beberapa tahun terakhir, standar ini menjadi cukup populer dan sekarang digunakan oleh banyak situs web paling populer di seluruh dunia, termasuk Facebook dan Twitter.
REST adalah cara untuk mengakses sumber daya yang berada di lingkungan tertentu. Misalnya, Anda dapat memiliki server yang menyimpan dokumen, gambar, atau video penting. Semua ini adalah contoh sumber daya. Jika klien, seperti peramban web, membutuhkan salah satu sumber daya ini, ia harus mengirimkan permintaan ke server. Layanan REST mendefinisikan cara standar untuk mengakses sumber daya ini.
Elemen kunci dari implementasi RESTful adalah sebagai berikut:
- Publikasi – Elemen kunci pertama adalah sumber daya itu sendiri. Mari kita asumsikan bahwa sebuah aplikasi web di server memiliki catatan beberapa karyawan. Mari kita asumsikan URL dari aplikasi web tersebut adalah https://demo.guru99.comSekarang, untuk mengakses sumber daya catatan karyawan melalui layanan REST, seseorang dapat mengeluarkan perintah berikut: https://demo.guru99.com/employee/1Perintah ini memberitahu server web untuk memberikan detail karyawan yang nomor karyawannya adalah 1.
- Permintaan Kata Kerja – Ini menjelaskan apa yang ingin Anda lakukan dengan sumber daya tersebut. Browser mengeluarkan kata kerja GET untuk menginstruksikan endpoint bahwa ia ingin mendapatkan data. Namun, ada banyak kata kerja lain yang tersedia, termasuk POST, PUT, dan DELETE. Jadi, dalam contoh ini https://demo.guru99.com/employee/1Sebenarnya, browser web mengeluarkan perintah GET karena ingin mendapatkan detail catatan karyawan.
- Tajuk Permintaan – Ini adalah instruksi tambahan yang dikirim bersama permintaan. Instruksi ini mungkin menentukan jenis respons yang dibutuhkan atau detail otorisasi.
- Badan Permintaan – Ini adalah data yang dikirim bersama permintaan. Data biasanya dikirim dalam body permintaan ketika permintaan POST dibuat ke layanan web REST. Dalam panggilan POST, klien memberi tahu layanan web REST bahwa ia ingin menambahkan sumber daya ke server. Oleh karena itu, body permintaan akan berisi detail sumber daya yang perlu ditambahkan.
- Badan Respon – Ini adalah bagian utama dari respons. Jadi, dalam contoh API RESTful kita, jika kita melakukan query ke server web melalui permintaan https://demo.guru99.com/employee/1, server web mungkin akan mengembalikan dokumen XML yang berisi semua detail karyawan dalam isi respons.
- Kode Status Respons – Ini adalah kode umum yang dikembalikan bersama dengan respons dari server web. Contohnya adalah kode 200, yang biasanya dikembalikan ketika tidak ada kesalahan saat mengembalikan respons ke klien.
Metode Tenang
Diagram di bawah ini menunjukkan sebagian besar kata kerja (POST, GET, PUT, dan DELETE) dan contoh API REST tentang artinya.
Mari kita asumsikan bahwa kita memiliki layanan web RESTful yang didefinisikan di lokasi tersebut. https://demo.guru99.com/employeeKetika klien membuat permintaan apa pun ke layanan web ini, klien dapat menentukan salah satu kata kerja HTTP standar seperti GET, POST, DELETE, dan PUT. Berikut adalah apa yang akan terjadi jika kata kerja tersebut dikirim oleh klien.
- POST – Ini akan digunakan untuk membuat karyawan baru menggunakan layanan web RESTful.
- DAPATKAN – Ini akan digunakan untuk mendapatkan daftar semua karyawan yang menggunakan layanan web RESTful.
- PUT – Ini akan digunakan untuk memperbarui semua data karyawan menggunakan layanan web RESTful.
- DELETE – Ini akan digunakan untuk menghapus semua karyawan yang menggunakan layanan RESTful.
Sekarang mari kita lihat dari perspektif satu catatan saja. Katakanlah ada catatan karyawan dengan nomor karyawan 1. Tindakan-tindakan berikut akan memiliki arti masing-masing.
- POST – Hal ini tidak berlaku, karena kita mengambil data karyawan 1, yang sudah dibuat.
- DAPATKAN – Ini akan digunakan untuk mendapatkan detail karyawan dengan nomor karyawan 1 menggunakan layanan web RESTful.
- PUT – Ini akan digunakan untuk memperbarui detail karyawan dengan nomor karyawan 1 menggunakan layanan web RESTful.
- DELETE – Ini digunakan untuk menghapus detail karyawan dengan nomor karyawan 1.
Tenang Architekstur
Aplikasi atau arsitektur yang dianggap RESTful atau bergaya REST memiliki karakteristik sebagai berikut.
1. Status dan fungsionalitas dibagi menjadi sumber daya terdistribusi – Ini berarti bahwa setiap sumber daya harus dapat diakses melalui perintah HTTP standar seperti GET, POST, PUT, atau DELETE. Jadi, jika seseorang ingin mengambil file dari server, mereka harus dapat mengirimkan permintaan GET dan mendapatkan file tersebut. Jika mereka ingin menempatkan file di server, mereka harus dapat mengirimkan permintaan POST atau PUT. Terakhir, jika mereka ingin menghapus file dari server, mereka dapat mengirimkan permintaan DELETE.
2. Arsitekturnya adalah klien/server, tanpa status (stateless), berlapis, dan mendukung caching.
- Klien-server merupakan arsitektur umum di mana servernya dapat berupa server web yang menjadi hosting aplikasi, dan kliennya dapat berupa peramban web.
- Stateless berarti status aplikasi tidak dipertahankan di REST. Misalnya, jika Anda menghapus sumber daya dari server menggunakan perintah DELETE, Anda tidak dapat mengharapkan informasi penghapusan tersebut diteruskan ke permintaan berikutnya.
Untuk memastikan bahwa sumber daya tersebut telah dihapus, Anda perlu mengirimkan permintaan GET. Permintaan GET akan digunakan untuk pertama-tama mendapatkan semua sumber daya di server, setelah itu Anda perlu memeriksa apakah sumber daya tersebut benar-benar telah dihapus.
Prinsip dan Batasan RESTFul
Arsitektur REST didasarkan pada beberapa karakteristik, yang akan dijelaskan lebih lanjut di bawah ini. Setiap layanan web RESTful harus mematuhi karakteristik di bawah ini agar dapat disebut RESTful. Karakteristik ini juga dikenal sebagai prinsip desain yang perlu diikuti saat bekerja dengan layanan berbasis RESTful.
Ini adalah persyaratan paling mendasar dari arsitektur berbasis REST. Artinya, server akan memiliki layanan web RESTful yang menyediakan fungsionalitas yang dibutuhkan kepada klien. Klien mengirimkan permintaan ke layanan web di server. Server kemudian menolak permintaan tersebut atau memenuhinya dan memberikan respons yang memadai kepada klien.
- Tanpa kewarganegaraan
Konsep stateless berarti bahwa klienlah yang bertanggung jawab untuk memastikan bahwa semua informasi yang dibutuhkan diberikan kepada server. Hal ini diperlukan agar server dapat memproses respons dengan tepat. Server tidak boleh menyimpan informasi apa pun di antara permintaan dari klien. Ini adalah urutan tanya jawab yang sangat sederhana dan independen. Klien mengajukan pertanyaan, dan server menjawabnya dengan tepat. Ketika klien mengajukan pertanyaan lain, server tidak akan mengingat skenario tanya jawab sebelumnya dan perlu menjawab pertanyaan baru secara independen.
- Cache
Konsep cache membantu mengatasi masalah tanpa status (statelessness) yang dijelaskan pada poin terakhir. Karena setiap permintaan server-klien bersifat independen, terkadang klien mungkin meminta server untuk permintaan yang sama lagi, meskipun sudah pernah meminta hal yang sama di masa lalu. Permintaan ini akan dikirim ke server, dan server akan memberikan respons, yang meningkatkan lalu lintas jaringan. Cache adalah konsep yang diimplementasikan pada klien untuk menyimpan permintaan yang telah dikirim ke server. Jadi, jika permintaan yang sama diberikan oleh klien, alih-alih dikirim ke server, permintaan tersebut akan masuk ke cache dan mendapatkan informasi yang dibutuhkan. Hal ini menghemat jumlah lalu lintas jaringan bolak-balik dari klien ke server.
- Sistem Berlapis
Konsep sistem berlapis adalah bahwa lapisan tambahan apa pun, seperti lapisan middleware, dapat disisipkan antara klien dan server sebenarnya yang menampung layanan web RESTFul. (Lapisan middleware adalah tempat semua logika bisnis dibuat. Ini bisa berupa layanan tambahan yang berinteraksi dengan klien sebelum melakukan panggilan ke layanan web.) Tetapi pengenalan lapisan ini harus transparan agar tidak mengganggu interaksi antara klien dan server.
- Antarmuka/Kontrol Seragamtract
Inilah teknik dasar bagaimana layanan web RESTful seharusnya bekerja. RESTful pada dasarnya bekerja pada lapisan web HTTP dan menggunakan kata kerja kunci di bawah ini untuk berinteraksi dengan sumber daya di server.
- POST – Untuk membuat sumber daya di server.
- GET – Untuk mengambil sumber daya dari server.
- PUT – Untuk mengubah status suatu sumber daya atau memperbaruinya.
- HAPUS – Untuk menghapus atau menghilangkan sumber daya dari server.
REST vs SOAP: Perbedaan Utama
Pengembang sering membandingkan REST dan SOAP saat mendesain layanan web. Keduanya memungkinkan aplikasi terdistribusi untuk berkomunikasi, tetapi keduanya sangat berbeda dalam filosofi. REST adalah gaya arsitektur yang menggunakan kata kerja HTTP sederhana dan format ringan seperti JSON, sedangkan SOAP SOAP adalah protokol ketat yang bergantung pada amplop XML dan kerangka kerja formal.tracTabel di bawah ini merangkum perbedaan-perbedaan terpenting.
| Aspek | ISTIRAHAT | SOAP |
|---|---|---|
| Tipe | Archigaya arsitektur | Protokol ketat |
| Format data | JSON, XML, teks biasa, HTML | Hanya XML |
| angkutan | Hanya HTTP | HTTP, SMTP, TCP, dan lainnya |
| Negara | Tanpa kewarganegaraan | Tanpa kewarganegaraan atau dengan kewarganegaraan? |
| Performance | Lebih cepat dan lebih ringan | Lebih berat karena overhead XML. |
| Terbaik untuk | API web, seluler, dan publik | Aplikasi perusahaan yang membutuhkan keamanan ketat |
Dalam praktiknya, REST adalah pilihan standar untuk API web dan seluler publik karena lebih cepat dan mudah digunakan, sementara SOAP tetap berguna untuk sistem perusahaan yang membutuhkan keamanan bawaan dan kepatuhan formal.tracts.
Buat layanan web Restful pertama Anda di ASP.NET
Nah, dalam tutorial REST API ini, kita akan mempelajari cara membuat layanan web Restful di ASP.NET.
Layanan web dapat dibuat dalam berbagai bahasa, dan banyak lingkungan pengembangan terintegrasi (IDE) dapat digunakan untuk membuat layanan berbasis REST.
Dalam contoh API RESTful ini, kita akan membuat aplikasi REST kita di .NET menggunakan Visual Studio. Kita akan memiliki layanan web RESTful yang akan bekerja pada kumpulan data di bawah ini.
Kumpulan data di bawah ini mewakili contoh REST API dari sebuah perusahaan yang menampilkan tutorial yang mereka miliki berdasarkan Tutorialid.
| Tutorial | Nama Tutorial |
|---|---|
| 0 | Array |
| 1 | antrian |
| 2 | Tumpukan |
Dalam contoh tutorial REST API kami, kami akan mengimplementasikan kata kerja Restful di bawah ini.
- DAPATKAN Tutorialnya – Saat klien memanggil API Restful ini, mereka akan diberikan seluruh rangkaian tutorial yang tersedia dari layanan web tersebut.
- DAPATKAN Tutorial/Tutorialid – Saat klien memanggil API Restful ini, mereka akan diberikan nama tutorial berdasarkan Tutorialid yang dikirim oleh klien.
- POST Tutorial/Nama Tutorial – Saat klien memanggil API Restful ini, klien akan mengirimkan permintaan untuk memasukkan nama tutorial. Layanan web kemudian akan menambahkan nama tutorial yang dikirimkan ke dalam koleksi.
- HAPUS Tutorial/Tutorialid – Saat klien memanggil API Restful ini, klien akan mengirimkan permintaan untuk menghapus Tutorialname berdasarkan Tutorialid. Layanan web kemudian akan menghapus nama tutorial yang dikirimkan dari koleksi.
Mari ikuti langkah-langkah di bawah ini untuk membuat layanan web RESTful pertama kita, yang menjalankan implementasi di atas.
Cara Membuat Layanan Web Tenang Pertama Anda
Langkah 1) Buat proyek baru.
Langkah pertama adalah membuat yang kosong Asp.Net Aplikasi web. Dari Visual Studio 2013, klik opsi menu File->Proyek baru.
Setelah Anda mengklik opsi Proyek Baru, Visual Studio akan menampilkan kotak dialog lain untuk memilih jenis proyek dan memasukkan detail yang diperlukan. Hal ini akan dijelaskan pada langkah selanjutnya.
Langkah 2) Masukkan nama proyek dan lokasi.
- Pastikan Anda memilih terlebih dahulu C# Templat web untuk aplikasi web ASP.NET. Proyek harus bertipe ini agar dapat membuat proyek layanan web. Dengan memilih opsi ini, Visual Studio akan menjalankan langkah-langkah yang diperlukan untuk menambahkan file yang dibutuhkan untuk aplikasi berbasis web apa pun.
- Berikan nama untuk proyek Anda, yang dalam kasus kami adalah “Webservice.REST”.
- Kemudian pastikan Anda menentukan lokasi penyimpanan file proyek.
Setelah selesai, Anda akan melihat file proyek yang dibuat di penjelajah solusi Anda di Visual Studio 2013.
Langkah 3) Buat file layanan web.
Langkah selanjutnya adalah membuat file layanan web yang akan menampung layanan web RESTful.
- Pertama, klik kanan pada file proyek seperti yang ditunjukkan di bawah ini.
- Pada langkah ini,
- Klik kanan pada file proyek.
- Pilih opsi “Tambah -> Item baru.”
Pada kotak dialog yang muncul, Anda perlu melakukan hal berikut.
- Pilih opsi Layanan WCF (Ajax-enabled). Memilih file jenis ini akan membuat Visual Studio menambahkan beberapa kode dasar yang membantu Anda membuat layanan web RESTful. WCF adalah singkatan dari... Windows Komunikasi FoundationWCF adalah pustaka untuk aplikasi dari berbagai platform (atau platform yang sama) untuk berkomunikasi melalui berbagai protokol seperti TCP, HTTP, dan HTTPS. Ajax bersifat Asinkron. JavaNaskah dan XML. AJAX memungkinkan halaman web diperbarui secara asinkron dengan bertukar sejumlah kecil data dengan server di balik layar.
- Selanjutnya, berikan nama untuk layanan tersebut, yang dalam kasus kita adalah TutorialService.
- Terakhir, klik tombol Tambah untuk menambahkan layanan ke solusi.
Langkah 4) Buat konfigurasi.
Langkah selanjutnya adalah melakukan perubahan konfigurasi agar proyek ini dapat bekerja dengan layanan web RESTful. Ini memerlukan perubahan pada file yang disebut web.configFile ini muncul di jendela yang sama dengan file proyek Webservice. File Web.config berisi semua konfigurasi yang membuat aplikasi web berfungsi sebagaimana mestinya. Perubahan yang dilakukan memungkinkan aplikasi untuk mengirim dan menerima data sebagai layanan web RESTful murni.
- Klik pada file Web.config untuk membuka kode.
- Temukan garisnya .
- Ubah baris tersebut menjadi .
Langkah 5) Tambahkan kode kami untuk implementasi.
Langkah selanjutnya adalah menambahkan kode kita untuk implementasi. Semua kode di bawah ini harus ditulis dalam file TutorialService.svc.
- Langkah pertama adalah menambahkan kode untuk merepresentasikan data kita, yang akan digunakan dalam program kita. Jadi kita akan memiliki daftar variabel string dengan nilai "Array", "Queues", dan "Stacks". Ini akan merepresentasikan nama-nama tutorial yang tersedia melalui layanan web hosting kita.
namespace Webservice.REST { [ServiceContract(Namespace = "")] [AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)] public class TutorialService { private static List<String> lst = new List<String> (new String[] {"Arrays","Queues","Stacks"});
Langkah 6) Tentukan kode untuk metode GET kami.
Selanjutnya, kita akan mendefinisikan kode untuk metode GET kita. Kode ini juga akan berada di file TutorialService.svc yang sama. Kode ini akan dijalankan setiap kali kita memanggil layanan dari browser kita.
Metode di bawah ini akan digunakan untuk memenuhi skenario berikut.
- Jika pengguna menginginkan daftar semua tutorial yang tersedia, maka kode di bawah ini perlu ditulis untuk mewujudkannya.
[WebGet(UriTemplate = "/Tutorial")] public String GetAllTutorial() { int count = lst.Count; String TutorialList = ""; for (int i = 0; i < count; i++) TutorialList = TutorialList + lst[i] + ","; return TutorialList; }
Code Penjelasan:-
- Baris kode pertama adalah yang paling penting. Kode ini digunakan untuk mendefinisikan bagaimana kita dapat memanggil metode ini melalui sebuah URLJadi, jika tautan ke layanan web kami adalah http://localhost:52645/TutorialService.svc dan kita menambahkan '/Tutorial' ke URL, seperti dalam http://localhost:52645/TutorialService.svc/TutorialKode di atas akan dipanggil. Atribut 'WebGet' adalah parameter yang memungkinkan metode ini menjadi metode RESTful sehingga dapat dipanggil melalui kata kerja GET.
- Bagian kode ini digunakan untuk menelusuri daftar string dalam variabel 'lst' dan mengembalikan semuanya ke program pemanggil.
Langkah 7) Kembalikan hasilnya.
Kode di bawah ini memastikan bahwa jika panggilan GET dilakukan ke layanan Tutorial dengan ID Tutorial, maka layanan tersebut akan mengembalikan nama tutorial yang sesuai berdasarkan ID Tutorial tersebut.
[WebGet(UriTemplate = "/Tutorial/{Tutorialid}")] public String GetTutorialbyID(String Tutorialid) { int pid; Int32.TryParse(Tutorialid, out pid); return lst[pid]; }
Code Penjelasan:-
- Baris kode pertama adalah yang paling penting. Baris ini mendefinisikan bagaimana kita dapat memanggil metode ini melalui sebuah URLJadi, jika tautan ke layanan web kami adalah http://localhost:52645/TutorialService.svc dan kita menambahkan '/Tutorial/{Tutorialid}' ke URL, kita akan dapat memanggil layanan web tersebut sebagai http://localhost:52645/TutorialService.svc/Tutorial/1Sebagai contoh, layanan web kemudian akan mengembalikan nama tutorial yang memiliki ID Tutorial 1.
- Bagian kode ini digunakan untuk mengembalikan nama tutorial yang memiliki ID Tutorial yang diteruskan ke metode web.
- Secara default, yang perlu diingat adalah apa pun yang diteruskan ke URL Di dalam browser, itu adalah sebuah string.
- Namun Anda harus ingat bahwa indeks ke daftar kita harus berupa bilangan bulat, jadi kita menambahkan kode yang diperlukan untuk terlebih dahulu mengkonversi Tutorialid menjadi bilangan bulat.
- Kemudian kita menggunakannya untuk mengakses posisi indeks dalam daftar kita dan mengembalikan nilainya ke program pemanggil sesuai dengan kebutuhan.
Langkah 8) Tulis kode untuk metode POST.
Langkah selanjutnya adalah menulis kode untuk metode POST kita. Metode ini akan dipanggil setiap kali kita ingin menambahkan nilai string ke daftar tutorial kita melalui metode POST. Misalnya, jika Anda ingin menambahkan nama tutorial "Pengujian Perangkat Lunak", maka Anda perlu menggunakan metode POST.
[WebInvoke(Method = "POST", RequestFormat = WebMessageFormat.Json, ResponseFormat = WebMessageFormat.Json, BodyStyle = WebMessageBodyStyle.Wrapped, UriTemplate = "/Tutorial/{str}")] public void AddTutorial(String str) { lst.Add(str); }
Code Penjelasan:-
- Baris pertama adalah atribut 'WebInvoke', yang telah dilampirkan ke metode kita. Ini memungkinkan metode tersebut dipanggil melalui panggilan POST. Atribut RequestFormat dan ResponseFormat harus disebutkan sebagai JSON, karena saat mengirimkan nilai ke layanan web RESTFul, nilai-nilai tersebut harus dalam format ini.
- Baris kode kedua digunakan untuk menambahkan nilai string yang dikirim melalui panggilan POST ke daftar string tutorial yang sudah ada.
Langkah 9) Tambahkan metode untuk menangani operasi DELETE.
Terakhir, kita akan menambahkan metode kita untuk menangani operasi DELETE. Metode ini akan dipanggil setiap kali kita ingin menghapus nilai string yang sudah ada dari daftar tutorial kita melalui metode DELETE.
[WebInvoke(Method = "DELETE", RequestFormat = WebMessageFormat.Json, UriTemplate = "/Tutorial/{Tutorialid}", ResponseFormat = WebMessageFormat.Json, BodyStyle = WebMessageBodyStyle.Wrapped)] public void DeleteTutorial(String Tutorialid) { int pid; Int32.TryParse(Tutorialid, out pid); lst.RemoveAt(pid); }
Code Penjelasan:-
- Baris pertama adalah atribut 'WebInvoke', yang telah dilampirkan ke metode kita. Ini memungkinkan metode dipanggil melalui panggilan DELETE. Atribut RequestFormat dan ResponseFormat harus disebutkan sebagai JSON, karena nilainya harus dalam format ini. Perhatikan bahwa parameter Method diatur ke “DELETE.” Ini berarti bahwa setiap kali kita mengeluarkan perintah DELETE, metode ini akan dipanggil.
- Baris kode kedua digunakan untuk mengambil Tutorialid yang dikirim melalui panggilan DELETE dan selanjutnya menghapus id tersebut dari daftar kami. (Itu Int32 Fungsi dalam kode tersebut digunakan untuk mengkonversi ID Tutorial dari variabel string menjadi bilangan bulat.
Menjalankan layanan web Restful pertama Anda
Setelah kita membuat seluruh layanan web di bagian atas, mari kita lihat bagaimana kita dapat menjalankan layanan Tutorial sehingga dapat dipanggil dari klien mana pun.
Untuk menjalankan layanan web, ikuti langkah-langkah di bawah ini.
Langkah 1) Klik kanan pada file proyek – Webservice.REST.
Langkah 2) Pilih opsi menu 'Tetapkan sebagai Proyek Startup'. Ini akan memastikan bahwa proyek ini dijalankan saat Visual Studio menjalankan seluruh solusi.
Langkah 3) Langkah selanjutnya adalah menjalankan proyek itu sendiri. Tergantung pada browser default yang terpasang di sistem, nama browser yang sesuai akan muncul di sebelah tombol jalankan di Visual Studio. Dalam kasus kami, kami memiliki Google Chrome muncul. Cukup klik tombol ini.
Keluaran:-
Saat proyek dijalankan, Anda dapat mengakses bagian TutorialService.svc/Tutorial, dan Anda akan mendapatkan output seperti di bawah ini.
Pada output di atas,
- Anda dapat melihat bahwa browser memanggil kata kerja 'GET' dan mengeksekusi metode 'GetAllTutorial' di layanan web. Modul ini digunakan untuk menampilkan semua tutorial yang diekspos oleh layanan web kami.
Menguji layanan web Restful pertama Anda
Pada bagian di atas, kita telah melihat cara menggunakan browser untuk mengeksekusi kata kerja 'GET' dan memanggil 'GetAllTutorial'.
- Sekarang mari kita gunakan browser untuk menjalankan skenario kasus penggunaan berikut.
GET Tutorial/Tutorialid – Saat klien memanggil API Restful ini, mereka akan diberikan nama tutorial berdasarkan Tutorialid yang dikirim oleh klien.
Di browser Anda, tambahkan string /1 setelah kata Tutorial di URLJika Anda menekan tombol Enter, Anda akan mendapatkan output di bawah ini.
Sekarang Anda akan melihat output dari “Queues”, yang sesuai dengan angka 1 dalam daftar string tutorial kita. Ini berarti bahwa metode 'GetTutorialbyID' sekarang dipanggil dari layanan web kita. Ini juga menunjukkan bahwa nilai 1 berhasil diteruskan melalui browser ke layanan web kita dan ke metode kita, dan itulah mengapa kita mendapatkan nilai “Queues” yang sesuai di browser.
- Selanjutnya, mari kita gunakan layanan web kita dengan menjalankan skenario di bawah ini. Untuk itu, Anda perlu menginstal alat yang disebut Fiddler, yang merupakan alat yang dapat diunduh secara gratis.
POST Tutorial/Tutorialname – Saat klien memanggil API Restful ini, klien akan mengirimkan permintaan untuk memasukkan Tutorialname. Layanan web kemudian akan menambahkan nama tutorial yang dikirimkan ke dalam koleksi.
Jalankan Fiddler Gunakan alat tersebut dan ikuti langkah-langkah di bawah ini.
- Masuk ke bagian pembuat permintaan (composer). Bagian ini digunakan untuk membuat permintaan yang dapat dikirimkan ke aplikasi web apa pun.
- Pastikan tipe permintaan adalah “POST” dan sudah benar. URL sedang dipukul, yang dalam kasus kita seharusnya http://localhost:52645/TutorialService.svc/Tutorial.
- Pastikan Content-Type ditandai sebagai application/json. Ingat bahwa metode permintaan POST di layanan web kita hanya menerima data bergaya JSON, jadi kita perlu memastikan ini ditentukan saat kita mengirim permintaan ke aplikasi kita.
- Terakhir, kita perlu memasukkan data kita. Ingat bahwa metode POST kita menerima parameter bernama 'str'. Jadi di sini kita menentukan bahwa kita ingin menambahkan nilai bernama "Trees" ke koleksi nama tutorial kita dan memastikan bahwa nilai tersebut dihubungkan ke nama variabel 'str'.
Terakhir, cukup klik tombol Eksekusi di FiddlerIni akan mengirimkan permintaan ke layanan web untuk mengirimkan data “Trees” ke layanan web kami.
Nah, saat kita membuka Tutorial URL Untuk menampilkan semua string dalam daftar tutorial kita, Anda akan melihat bahwa nilai "Trees" juga ada. Ini menunjukkan bahwa permintaan POST ke layanan web berhasil dieksekusi dan berhasil ditambahkan ke daftar tutorial kita.
- Selanjutnya, mari kita gunakan layanan web kita dengan menjalankan skenario di bawah ini. Untuk ini, kita juga perlu menggunakan Fiddler tool.
HAPUS Tutorial/Tutorialid – Saat klien memanggil API Restful ini, klien akan mengirimkan permintaan untuk menghapus Tutorialname berdasarkan Tutorialid. Layanan web kemudian akan menghapus nama tutorial yang dikirimkan dari koleksi.
Jalankan Fiddler Gunakan alat tersebut dan ikuti langkah-langkah di bawah ini.
- Masuk ke bagian pembuat permintaan (composer). Bagian ini digunakan untuk membuat permintaan yang dapat dikirimkan ke aplikasi web apa pun.
- Pastikan jenis permintaan adalah “HAPUS” dan sudah benar. URL sedang dipukul, yang dalam kasus kita seharusnya http://localhost:52645/TutorialService.svc/TutorialPastikan bahwa ID yang digunakan untuk menghapus string dalam daftar dikirim melalui URL sebagai parameter. Dalam contoh REST kita, kita mengirimkan 1, jadi ini akan menghapus 2.nd elemen dalam koleksi kami, yaitu "Antrean".
Terakhir, cukup klik tombol Eksekusi di FiddlerIni akan mengirimkan permintaan ke layanan web untuk MENGHAPUS data “Antrian” dari layanan web kami.
Nah, saat kita membuka Tutorial URL Untuk menampilkan semua string dalam daftar tutorial kami, Anda akan melihat bahwa nilai "Queues" sudah tidak ada lagi.
Ini menunjukkan bahwa permintaan DELETE ke layanan web telah berhasil dieksekusi. Elemen pada indeks nomor 1 dalam daftar string tutorial kita telah berhasil dihapus.
Praktik Terbaik API RESTful
Membangun API REST yang berfungsi hanyalah langkah pertama; membangun API yang dapat diskalakan dan tetap mudah dipelihara membutuhkan disiplin. Praktik-praktik di bawah ini membantu menjaga agar endpoint Anda dapat diprediksi, aman, dan mudah digunakan oleh pengembang lain dan agen AI.
- Gunakan kata benda, bukan kata kerja, dalam URLs. Titik akhir seperti /karyawan/1 lebih jelas daripada /getEmployee?id=1, karena kata kerja HTTP sudah menjelaskan tindakannya.
- Kembalikan kode status yang bermakna. Kirimkan kode 200 untuk keberhasilan, 201 untuk sumber daya yang dibuat, 400 untuk permintaan yang gagal, 401 untuk akses tidak sah, 404 untuk sumber daya yang hilang, dan 500 untuk kesalahan server.
- Versikan API Anda. Menambahkan segmen versi seperti /v1/ Dengan demikian, Anda dapat mengembangkan layanan tanpa merusak klien yang sudah ada.
- Amankan setiap titik akhir. Gunakan HTTPS, bersama dengan kunci API atau token OAuth 2.0, dan validasi semua input yang masuk.
- Mendukung paginasi dan penyaringan. Mengembalikan koleksi besar dalam beberapa halaman menjaga respons tetap cepat dan mengurangi beban server.
Dengan mengikuti konvensi ini, layanan web RESTful Anda akan mudah diintegrasikan, baik konsumennya adalah aplikasi seluler, sistem mitra, atau alur kerja AI otomatis.




























