Latihan - Menambahkan rute

Selesai

Proyek pertama Anda dengan API minimal telah diterima dengan baik. Sekarang, perusahaan Anda ingin melihat aplikasi yang melakukan sesuatu sedikit lebih banyak, seperti mengelola sumber daya. Anda dapat menggunakan sumber daya apa pun. Anda merasa lapar, mau pizza?

Menambahkan data

Pertama, Anda perlu beberapa data. Untuk menyimpan dan mengelola data, Anda akan menggunakan penyimpanan di dalam memori.

  1. Menggunakan Visual Studio Code, buat file bernama Db.cs di root proyek dan berikan konten berikut:

     namespace PizzaStore.DB; 
    
     public record Pizza 
     {
       public int Id {get; set;} 
       public string ? Name { get; set; }
     }
    
     public class PizzaDB
     {
       private static List<Pizza> _pizzas = new List<Pizza>()
       {
         new Pizza{ Id=1, Name="Montemagno, Pizza shaped like a great mountain" },
         new Pizza{ Id=2, Name="The Galloway, Pizza shaped like a submarine, silent but deadly"},
         new Pizza{ Id=3, Name="The Noring, Pizza shaped like a Viking helmet, where's the mead"} 
       };
    
       public static List<Pizza> GetPizzas() 
       {
         return _pizzas;
       } 
    
       public static Pizza ? GetPizza(int id) 
       {
         return _pizzas.SingleOrDefault(pizza => pizza.Id == id);
       } 
    
       public static Pizza CreatePizza(Pizza pizza) 
       {
         _pizzas.Add(pizza);
         return pizza;
       }
    
       public static Pizza UpdatePizza(Pizza update) 
       {
         _pizzas = _pizzas.Select(pizza =>
         {
           if (pizza.Id == update.Id)
           {
             pizza.Name = update.Name;
           }
           return pizza;
         }).ToList();
         return update;
       }
    
       public static void RemovePizza(int id)
       {
         _pizzas = _pizzas.FindAll(pizza => pizza.Id != id).ToList();
       }
     }
    

Sekarang Anda memiliki penyimpanan data, biarkan kami menggunakan API selanjutnya.

Sambungkan data ke rute

Untuk menghubungkan toko dalam memori Anda ke API, Anda akan:

  1. Tambahkan namespace layanan. Tambahan ini sesederhana menambahkan pernyataan using yang tepat.
  2. Atur rutenya. Pastikan Anda menambah semua pemetaan rute yang diperlukan untuk membuat, membaca, memperbarui, dan menghapus.
  3. Gunakan pada rute. Terakhir, Anda perlu memanggil penyimpanan dalam memori per setiap rute dan meneruskan parameter atau isi apa pun dari permintaan, jika berlaku.

Sekarang, sambungkan data ke API Anda.

  1. Di bagian atas file Program.cs, tambahkan baris kode berikut:

    using PizzaStore.DB;
    
  2. Tepat sebelum app.Run(), tambahkan kode berikut:

    app.MapGet("/pizzas/{id}", (int id) => PizzaDB.GetPizza(id));
    app.MapGet("/pizzas", () => PizzaDB.GetPizzas());
    app.MapPost("/pizzas", (Pizza pizza) => PizzaDB.CreatePizza(pizza));
    app.MapPut("/pizzas", (Pizza pizza) => PizzaDB.UpdatePizza(pizza));
    app.MapDelete("/pizzas/{id}", (int id) => PizzaDB.RemovePizza(id));
    
  3. Pastikan Anda telah menyimpan semua perubahan Anda. Di terminal, jalankan aplikasi:

    dotnet run
    
  4. Di browser Anda, buka http://localhost:{PORT}/swagger.

    Anda akan melihat perenderan halaman berikut:

    Create, read, update and delete, Swagger

Itu saja! Anda telah sepenuhnya mengimplementasikan API minimal Anda. Anda dapat menggunakan Antarmuka Pengguna Swagger untuk menguji setiap rute Anda.