Consume API
Agus Nugroho
Apa itu JSON?
JSON (JavaScript Object Notation) adalah sebuah format yang
digunakan untuk pertukaran data antara aplikasi. Format JSON
didasarkan pada notasi objek dalam bahasa pemrograman
JavaScript, tetapi format ini telah menjadi populer dan
mendukung banyak bahasa pemrograman lainnya.
Contoh Json
Dalam contoh di atas, kita memiliki objek JSON yang berisi informasi seorang individu. Setiap pasangan key-value
memiliki key (misalnya "nama") dan value (misalnya "John Doe"). Value bisa berupa tipe data primitif seperti string,
angka, boolean, atau juga bisa berupa array atau objek lainnya.
Kenapa Json?
JSON banyak digunakan dalam pengembangan aplikasi web
dan mobile sebagai format pertukaran data antara server dan
klien. Data dalam format JSON dapat dengan mudah
dikonversi ke objek dalam bahasa pemrograman dan
sebaliknya, sehingga memudahkan dalam pengolahan dan
manipulasi data.
End point
https://629d7f1cc6ef9335c09e838b.mockapi.io/api/mahasiswa
Endpoint adalah URL atau alamat yang digunakan oleh aplikasi
untuk berkomunikasi dengan sebuah service atau server dalam
arsitektur perangkat lunak berbasis web. Endpoint menentukan di
mana request atau permintaan akan dikirim dan di mana response
atau tanggapan akan diterima
Menambahkan library newtonjsoft
Model
https://629d7f1cc6ef9335c09e838b.mockapi.io/api/mahasiswa
Saat kita mengakses endpoint diatas,
Kita akan mendapatkan respon seperti gambar disamping
Yang perlu kita lakukan untuk mengkonsumsi data tersebut, kita harus
memodelkan data disamping kedalam bentuk class
public class Mahasiswa
{
public string nama { get; set; }
public string nim { get; set; }
public DateTime join_date { get; set; }
public string id { get; set; }
}
Get Data
// Baca file JSON
WebClient client = new WebClient();
string json = client.DownloadString(@"https://629d7f1cc6ef9335c09e838b.mockapi.io/api/mahasiswa");
// Deserialisasi JSON menjadi list Mahasiswa
List<Mahasiswa> mhs = JsonConvert.DeserializeObject<List<Mahasiswa>>(json);
// Tampilkan data Mahasiswa
for (int i = 0; i < mhs.Count; i++)
{
Console.WriteLine("Nama : " + mhs[i].nama);
Console.WriteLine("NIM : " + mhs[i].nim);
Console.WriteLine("Join Date: " + mhs[i].join_date.ToString("dd/MM/yyyy"));
Console.WriteLine("-----------------------------------");
}
Console.ReadKey();
Console.Write("masukan nama : ");
string nama = Console.ReadLine();
Console.Write("masukan nim :");
Post Data
string nim = Console.ReadLine();
Mahasiswa mahasiswa = new Mahasiswa
{
nama = nama,
nim = nim,
join_date = DateTime.Now
};
string json = JsonConvert.SerializeObject(mahasiswa);
string endpointUrl = @"https://629d7f1cc6ef9335c09e838b.mockapi.io/api/mahasiswa";
using (HttpClient httpClient = new HttpClient())
{
HttpContent content = new StringContent(json, Encoding.UTF8, "application/json");
HttpResponseMessage response = httpClient.PostAsync(endpointUrl, content).Result;
if (response.IsSuccessStatusCode)
{
Console.WriteLine("Data berhasil dipost ke endpoint.");
}
else
{
Console.WriteLine("Gagal melakukan POST data ke endpoint. Status code: " + response.StatusCode);
}
}
Console.ReadKey();
Mahasiswa mahasiswa = new Mahasiswa
{
nama = "xyz",
Update
nim = "xyz",
join_date = DateTime.Now
};
string id = Console.ReadLine();
string json = JsonConvert.SerializeObject(mahasiswa);
string endpointUrl = @"https://629d7f1cc6ef9335c09e838b.mockapi.io/api/mahasiswa/"+id;
using (HttpClient httpClient = new HttpClient())
{
HttpContent content = new StringContent(json, Encoding.UTF8, "application/json");
HttpResponseMessage response = httpClient.PutAsync(endpointUrl, content).Result;
if (response.IsSuccessStatusCode)
{
Console.WriteLine("Data berhasil diupdate ke endpoint.");
}
else
{
Console.WriteLine("Gagal melakukan update data ke endpoint. Status code: " + response.StatusCode);
}
}
Console.ReadKey();
Delete Data
string id = "1";
string endpointUrl = @"https://629d7f1cc6ef9335c09e838b.mockapi.io/api/mahasiswa/" + id;
using (HttpClient httpClient = new HttpClient())
{
HttpResponseMessage response = httpClient.DeleteAsync(endpointUrl).Result;
if (response.IsSuccessStatusCode)
{
Console.WriteLine("Data dengan id " + id + " berhasil dihapus dari endpoint.");
}
else
{
Console.WriteLine("Gagal menghapus data dari endpoint. Status code: " + response.StatusCode);
}
}
Console.ReadKey();
Ada Pertanyaan?
Latihan
Refactoring menjadi function CRUD, dan buat
main menu pada materi consume API ini
Selesai