Membuat RESTful API dengan .NET 6.0
Pada artikel sebelumnya yaitu “Membuat Project Pertama Menggunakan .NET” kita sudah membahas cara membuat project menggunakan .Net. Nah, pada artikel kali ini kita akan membahas tentang membuat RESTful API dengan ASP.NET 6.0. Sebelum kita mulai membuat projectnya, mari kita membahas sedikit tentang apa itu RESTful API.
Apa itu API, REST API, Dan RESTful API?
API adalah singkatan dari Application Programming Interface yaitu sebuah software yang memungkinkan para developer untuk mengintegrasikan serta mengizinkan dua buah aplikasi yang berbeda secara bersamaan untuk saling terhubung satu sama lain.
Tujuan penggunaan API adalah untuk berbagi data antar aplikasi yang berbeda, kemudian untuk mempercepat proses pengembangan aplikasi dengan cara menyediakan sebuah function yang terpisah sehingga para developer tidak perlu lagi membuat fitur yang serupa.
Sedangkan REST API adalah salah satu dari desain arsitektur yang terdapat dalam API itu sendiri. Sedangkan untuk cara kerja dari RESTful API adalah REST client akan melakukan akses pada data/resource kepada REST server ditempat masing-masing resource berada. Untuk proses akses data/resource tersebut akan dibedakan oleh sebuah global ID atau URIs (Universal Resource Identifiers).
Untuk data sendiri yang diberikan oleh REST server itu berupa format text, JSON atau XML. Sedangkan format yang paling populer dan paling banyak digunakan saat ini adalah format JSON.
Untuk menggunakan REST API ini, kita dapat menggunakan beberapa metode HTTP sebagai berikut:
- GET, berfungsi untuk membaca data/resource dari REST server
- POST, berfungsi untuk membuat sebuah data/resource baru di REST server
- PUT, berfungsi untuk memperbaharui data/resource di REST server
- DELETE, berfungsi untuk menghapus data/resource dari REST server
- OPTIONS, berfungsi untuk mendapatkan operasi yang didukung pada resource dari REST server.
Membuat RESTful API menggunakan .NET 6.0
Setelah membahas secara singkat tentang definisinya, maka selanjutnya kita akan mencoba membuat API dengan menggunakan .NET 6.0
Langkah Pertama: Setup Project
Pada tahap awal, kita perlu menginstall dahulu Visual Studio yang akan kita gunakan sebagai code editor kita. Jika kalian belum menginstallnya maka kalian bisa mengikuti langkah-langkah pada artikel ini Langkah-Langkah Memulai Program .Net Untuk Pemula. Setelah terinstall, buka Visual Studio kemudian create new project dan cari template “ASP.NET Core Web API”. Kemudian berikan nama projectnya “HotelBookingAPI”. Seperti gambar 1.0
Gambar 1.0
Selanjutnya kita akan diberikan pilihan untuk memilih framework, maka kita pilih .Net 6.0, kemudian pastikan enable OpenAPI support dicentang seperti pada gambar 1.1. Tujuannya agar kita bisa mendapatkan dokumentasi API dari aplikasi bawaannya bukan menggunakan 3rd party application.
Gambar 1.1
Langkah Kedua: Hapus Default Script
Karena dalam project ini kita tidak akan menggunakan 2 file default dari aplikasi yaitu WeatherForecast.cs dan WeatherForecastController.cs yang ada di direktori controller, maka yang harus kita lakukan adalah hapus kedua file tersebut.
Gambar 2.0
Langkah Ketiga: Membuat models
Setelah kita menghapus file yang tidak dibutuhkan, kemudian kita akan membuat model terlebih dahulu. Untuk membuatnya, pertama-tama kita buat dahulu folder model agar semua model yang akan kita buat dapat ditampung dalam folder tersebut. Caranya adalah klik kanan pada folder kita, kemudian add > kemudian pilih new folder seperti pada gambar 3.0.
Gambar 3.0
Kemudian, buat c# class baru di dalam folder model tadi dengan nama HotelBooking seperti gambar 3.1. Jadi pada model ini kita akan gunakan untuk menyimpan informasi ke dalam database kita.
Gambar 3.1
Setelah file dibuat, tambahkan 3 properti yang kita butuhkan seperti berikut:
namespace HotelBookingAPI.Models
{
public class HotelBooking
{
public int Id { get; set; }
public int RoomNumber { get; set; }
public string? ClientName { get; set; }
}
}
Yang akan menjadi primary key di dalam database kita adalah id. Kedua RoomNumber, dan terakhir ClientName.
Langkah Keempat: Setup Database
Untuk menggunakan database kita butuh membuat database context. Database Context adalah simple class yang mengandung dbset properties dari tipe yang akan kita simpan ke database. Setelah itu, kita dapat memanfaatkan DbContext untuk create,modify, dan read data dari database.
Gambar 4.0
Sekarang kita buat folder baru dengan nama data kemudian menambahkan class baru di dalamnya dengan nama ApiContext.
Gambar 4.1
Setelah itu kita perbarui code di dalamnya dengan menggunakan code berikut ini:
using Microsoft.EntityFrameworkCore;
using HotelBookingAPI.Models;
namespace HotelBookingAPI.Data
{
public class ApiContext : DbContext
{
public DbSet<HotelBooking> Bookings { get; set; }
public ApiContext(DbContextOptions<ApiContext> options)
: base(options)
{
}
}
}
Selanjutnya kita harus instal package yang kita gunakan di atas dengan cara:
Klik tools > NuGet Package Manager > Manage NuGet Packages for solution.
Kemudian search pada kolom search Microsoft.EntityFrameworkCore.InMemory. Jika tidak ada, maka kalian bisa klik setting kemudian tambahkan NuGet package source dengan cara seperti pada contoh gambar 4.2 berikut ini:
Gambar 4.2
Langkah Kelima: Membuat controller
Selanjutnya kita sudah bisa mulai untuk membuat controller. Untuk menangani data yang akan ditampilkan, kita akan buat controller baru dengan cara klik kanan pada folder controller, kemudian add new class → pilih API Controller - Empty → beri nama HotelBookingController.
Gambar 5.1
Setelah controller kita buat, selanjutnya kita harus import models, dan juga APIContext yang sudah kita buat sebelumnya, dan juga koneksikan APIontext yang telah kita buat dengan code dibawah:
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
using HotelBookingAPI.Models;
using HotelBookingAPI.Data;
namespace HotelBookingAPI.Controllers
{
[Route("api/[controller]/[action]")]
[ApiController]
public class HotelBookingController : ControllerBase
{
private readonly ApiContext _context;
public HotelBookingController(ApiContext context)
{
_context = context;
}
}
}
Langkah Keenam: Membuat Endpoint untuk create dan edit
Di dalam HotelBookingController kita akan membuat method untuk create dan edit data. Pertama-tama kita buat method terlebih dahulu, pastikan kita menambahkan HttpPost attribute karena yang kita akan melakukan create dan edit data sekaligus. Untuk return object dari method ini harus menggunakan format json agar mudah melakukan return object. Setelah membuat method yang kita lakukan berikutnya adalah melakukan create-edit booking id menggunakan code dibawah ini :
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
using HotelBookingAPI.Models;
using HotelBookingAPI.Data;
namespace HotelBookingAPI.Controllers
{
[Route("api/[controller]/[action]")]
[ApiController]
public class HotelBookingController : ControllerBase
{
private readonly ApiContext _context;
public HotelBookingController(ApiContext context)
{
_context = context;
}
// Create/Edit
[HttpPost]
public JsonResult CreateEdit(HotelBooking booking)
{
//cek apakah id yang diinput 0 atau tidak
if (booking.Id == 0)
{
//jika iya maka akan melakukan create data atau add data
_context.Bookings.Add(booking);
}
else
{
//jika bukan 0 maka akan mencari id tersebut
var bookingInDb = _context.Bookings.Find(booking.Id);
//jika id tidak ditemukan maka akan return not found
if (bookingInDb == null)
return new JsonResult(NotFound());
//jika ada maka akan merubah data dengan data yang diinput tadi
bookingInDb = booking;
}
_context.SaveChanges();
//kemudian return status code ok dan data dalam bentuk json
return new JsonResult(Ok(booking));
}
}
}
Sekarang coba start aplikasinya, dan kita bisa lihat swagger api documentation telah terbuat secara otomatis oleh sistem. Sekarang kita coba create/edit api yang sudah kita buat dengan memasukan data, kemudian edit data, jika berhasil maka akan seperti gambar 6.1.
Gambar 6.1
Kemudian kita tes dengan memasukan id yang tidak ada dalam database sistem, maka tampilan dari sistem akan 404 seperti gambar 6.2.
Gambar 6.2
Langkah Ketujuh: Membuat Endpoint Get
Sekarang kita buat endpoint lainnya yaitu get, pastikan kita gunakan attribute HttpGet. Kemudian buat public jsonresult dan tambahkan parameter id yang nantinya akan kita gunakan untuk mencari data di dalam database kita. Jika data tidak ada, maka kita akan menampilkan hasil not found status code. Jika data ditemukan maka kita akan menampilkan hasilnya.
//Get
[HttpGet]
public JsonResult Get(int id)
{
//cek apakah id ada di dalam database atau tidak
var result = _context.Bookings.Find(id);
//jika tidak ada maka akan return not found status code
if (result == null)
return new JsonResult(NotFound());
//jika ada maka akan return status code ok dan data dalam bentuk json
return new JsonResult(Ok(result));
}
Langkah Kedelapan: Membuat Endpoint Delete
Sekarang kita tambahkan method delete dengan menambahkan HtppDelete Attribute, kemudian tambahkan parameter id seperti Get untuk melakukan pengecekan apakah data tersebut ada di database atau tidak, jika tidak ada kita akan lakukan return not found status code. Sedangkan jika ada kita akan panggil context remove. Selanjutnya kita return dengan json NoContent untuk memberitahu bahwa data sudah tidak ada.
// Delete
[HttpDelete]
public JsonResult Delete(int id)
{
//cek apakah id ada di dalam database atau tidak
var result = _context.Bookings.Find(id);
//jika tidak ada maka akan return not found status code
if (result == null)
return new JsonResult(NotFound());
//jika ada maka akan dihapus
_context.Bookings.Remove(result);
_context.SaveChanges();
//kemudian return NoContent status code untuk menandakan bahwa data sudah dihapus
return new JsonResult(NoContent());
}
Langkah Kesembilan: Membuat Endpoint Get All
Terakhir, kita buat endpoint untuk Get All data dengan menggunakan code dibawah ini:
// Get all
[HttpGet()]
public JsonResult GetAll()
{
//ambil semua data dari database dan listh
var result = _context.Bookings.ToList();
//kemudian return status code ok dan data dalam bentuk json
return new JsonResult(Ok(result));
}
Ketika semua endpoint sudah selesai sekarang kita coba lakukan testing lagi, jalankan aplikasi kalian kemudian kita test semua endpoint-nya. Jika berhasil maka akan seperti gambar di bawah.
Selamat, kalian sudah berhasil membuat RESTful API dengan .NET Core.
Apakah kalian mulai tertarik untuk belajar untuk membuat project-project menggunakan .NET Core? Jika kalian berminat belajar lebih lanjut tentang pemrograman dengan .NET dan bahasa pemrograman lainnya, silahkan kunjungi social media Xsis Academy untuk mendapatkan info lebih lanjut mengenai Bootcamp Xsis Academy.
Selain itu, temukan juga video tutorial ngoding dari Tim Trainer Xsis Academy pada channel ETG berikut ini Youtube Equine Technologies Group.
Untuk full source codenya dapat di download di :
https://github.com/brahmantiodiaz/asp-net-6-blogXA-rest-api
——–
Penulis : Aulia Brahmantio Diaz – Webmaster Xsis Mitra Utama