Yükleniyor
Postman

Postman ile Google Calendar API'ları kullanarak davetiye oluşturma, güncelleme ve silme işlemleri

Postman ile Google Calendar API'ları kullanarak davetiye oluşturma, güncelleme ve silme işlemleri

  • Yıldız:
  • Yazar: İnanç Özkul
  • Web sayfası: inancozkul.com.tr
  • Oluşturma Tarihi:12.11.2020 22:27:08
  • Güncellenme Tarihi:18.01.2022 14:26:17

Merhabalar,

Bir önceki yazıda Google api'larına ulaşmak için nasıl token alacağımızı anlatmaya çalışmıştım.

Oath2.0 Token Alma ile ulaşabilirsiniz.

Bugün ise sizlere test bakışıyla herhangi bir takvim oluşturma, bu takvime bağlı davetiye oluşturma, güncelleme ve silme işlemlerini içeren bir yazı hazırlayıp anlatmak istemekteyim. Başlamadan önce aşağıdaki gibi bir yol haritası izleyeceğimi bildirip, keyifli okumalar dilerim. 

1.png

Her şeyden önce birden fazla kopyala yapıştır durumlarının önüne geçmek için bir environment oluşturacağım ve bunun içerisinde baseURL, takvim id'si, event id'si ve başlıklar gibi değerleri kaydedeceğim ve sürekli buradan okuma gerçekleştireceğim. 

İsterseniz environment ile ilgili burayı inceleyebilirsiniz.

Environment'ın son hali aşağıdaki gibi olacak.

2.png

Hazırlık aşamasıda tamamlandıktan sonra artık api'lara dilediğimiz gibi istek yollayıp istek cevaplarını kontrol edebiliriz. :) 

Google API Reference ve Any API - Google Calendar linklerini inceleyerek API detaylarına ulaşabilirsiniz. 

1) POST {{baseURL}}calendars

  • Herhangi bir takvim oluşturalım;

        İlk olarak api'yı url kısmına eklemesini gerçekleştiriyoruz. POST {{baseURL}}calendars

        Gerekli authorization işlemlerini gerçekleştiriyoruz.

        Daha sonra ise body kısmında sadece ben başlık için summary'i ileteceğim. Dokümanı incelerseniz birden fazla parametrenin olduğunu görüntüleyebilirsiniz. 

{
    "summary":"Test"
}

3.png

       Buna birde isteğin başarılı olup olmadığını ve response'da dönen başlığın environment'e kaydedilmesi için ufak test blokları ekleyebiliriz.

var jsonData = pm.response.json();

pm.environment.set("id",jsonData.id);
pm.environment.set("summary",jsonData.summary);

pm.test("Status code is 200", function () {
    pm.response.to.have.status(200);
});

4.png

        Bu işlemlerden sonra başarıyla takvimin oluştuğunu ve yukarda test alanında 200 OK sorgusu yaptığımız için testimizinde başarılı olduğunu görüntülüyoruz. 

        Bundan sonraki adımda ise dilerseniz Google Calendar'a giderek takvimimizin oluştuğunu görüntüleyebiliriz.

5.png

        

2) GET {baseURL}}users/me/calendarList/{{id}}

  • Oluşturma işlemini yaptıktan sonra otomasyon mantığıyla takvimin oluşup oluşmadığını kontrol edelim.

         İlk olarak api'yı url kısmına eklemesini gerçekleştiriyoruz. GET {{baseURL}}users/me/calendarList/{{id}}

         Gerekli authorization işlemlerini gerçekleştiriyoruz.

         Detay çekeceğimiz için burada herhangi bir body girişi sağlamıyoruz fakat uzantıya(path) id datasını yollamayalız. Bunuda yukarıda post işlemi gerçekleştirirken id ismiyle environment'e kaydedilmesini gerçekleştirmiştik.

         Şu şekilde de sorgulamanın başarılı olup olmadığını kontrol etmek için ufak bir test ekleyelim.

var jsonData = pm.response.json();

pm.test("Summary is equal",function()
{
    pm.expect(jsonData.summary).to.eql(pm.variables.get("summary"));
});

pm.test("Status code is 200", function () {
    pm.response.to.have.status(200);
});

6.png

        Bütün işlemleri gerçekleştirdikten sonra send request yaparak isteğimizi yollayıp backend tarafında da kontrollerimizi sağlayabiliriz. 

3) POST {{baseURL}}calendars/{{id}}/events

  • Takvim oluşturma işleminden sonra ise bir adet davetiye oluşturulması gerçekleştirelim.

         İlk olarak api'yı url kısmına eklemesini gerçekleştiriyoruz. POST {{baseURL}}calendars/{{id}}/events Path alanına id parametresini takvim oluştururken test alanından kaydedilmesi için gerekli eklemeleri yapmıştık. Oradan bu id verisini okuyacağız.

         Gerekli authorization işlemlerini gerçekleştiriyoruz.

         Burada bir ekleme işlemi yapacağımız için body kullanacağız, burada da ben sadece takvim başlığının ve gerekli alanların olduğu(end ve start - dokümandan detaylarını inceleyebilirsiniz) ait bir davetiye oluşturacağım.

{
    "start":
    [
        {
            "date":"2020-11-11"
        }
    ],
    "end":
    [
        {
            "date":"2020-11-12"
        }
    ],
    "summary":"Test Summary",
    "description":"We are filling description area with postman"

}

7.png

        İsteği çıkarmadan önce burayada isteğin başarılı olup olmadığını sorgulayacak ve davetiye başlığını environment'e kaydedecek bir ufak test yazalım.

var jsonData = pm.response.json();

pm.environment.set("event_id",jsonData.id);
pm.environment.set("Appointment_summary",jsonData.summary);

pm.test("Status code is 200", function () {
    pm.response.to.have.status(200);
});

8.png

        Bu işlemden sonrada artık dilediğimiz gibi isteğimizi çıkartabiliriz ve ayrıca google calendar'a gidip oluşup oluşmadığını canlı izleyebiliriz :)

9.png

        Davetiyeyi 11/12/2020 & 12/12/2020 aralığında tüm gün ayarladığımız için ve tüm günü kapsadığı için header'da görüntülenecek. Siz dilerseniz saat detaylarınıda iletip, istediğiniz saatte davetiye oluşturabilirsiniz.

4) GET {{baseURL}}calendars/{{id}}/events/{{event_id}}

  • Davetiye oluşturma işlemini yaptıktan sonra otomasyon mantığıyla davetiyenin oluşup oluşmadığını kontrol edelim.

         İlk olarak api'yı url kısmına eklemesini gerçekleştiriyoruz. GET {{baseURL}}calendars/{{id}}/events/{{event_id}}

         Gerekli authorization işlemlerini gerçekleştiriyoruz.

         Detay çekeceğimiz için burada herhangi bir body girişi sağlamıyoruz fakat uzantıya(path) id ve event_id datasını yollamayalız. Bunuda yukarıda calendar create işlemi gerçekleştirirken id ismiyle ve appointment create işlemi gerçekleştirirken event_id ismiyle environment'e kaydedilmesini gerçekleştirmiştik.

         Şu şekilde de sorgulamanın başarılı olup olmadığını kontrol etmek için ufak bir test ekleyelim.

var jsonData = pm.response.json();

pm.test("Summary is equal",function()
{
    pm.expect(jsonData.summary).to.eql(pm.variables.get("Appointment_summary"));
});

pm.test("Status code is 200", function () {
    pm.response.to.have.status(200);
});

10.png

        Bütün işlemleri gerçekleştirdikten sonra send request yaparak isteğimizi yollayıp backend tarafında da kontrollerimizi sağlayabiliriz. 

5) PUT {{baseURL}}calendars/{{id}}/events/{{event_id}}

  • Takvim oluşturma işleminden sonra ise önceden oluşturduğumuz davetiye üzerinde güncelleme işlemleri gerçekleştirelim

         İlk olarak api'yı url kısmına eklemesini gerçekleştiriyoruz. PUT {{baseURL}}calendars/{{id}}/events/{{event_id}} Path alanına id parametresini takvim oluştururken test alanından kaydedilmesi için gerekli eklemeleri yapmıştık. Environment'ten bu id verisini okuyacağız.

         Gerekli authorization işlemlerini gerçekleştiriyoruz.

         Burada bir güncelleme işlemi yapacağımız için body kullanacağız, burada da ben sadece takvim başlığının ve gerekli alanların olduğu(end ve start - dokümandan detaylarını inceleyebilirsiniz) ait bir body kullanacağım.

{
    "start":
    [
        {
            "date":"2020-11-11"
        }
    ],
    "end":
    [
        {
            "date":"2020-11-12"
        }
    ],
    "summary":"New Name"
}

11.png

        İsteği çıkarmadan önce burayada isteğin başarılı olup olmadığını sorgulayacak ve güncellenen davetiye başlığını environment'e kaydedecek bir ufak test yazalım.

var jsonData = pm.response.json();

pm.environment.set("event_id",jsonData.id);
pm.environment.set("Updated_Appointment_summary",jsonData.summary);

pm.test("Status code is 200", function () {
    pm.response.to.have.status(200);
});

         Davetiyeyi 11/12/2020 & 12/12/2020 aralığında tüm gün ayarladığımız için ve tüm günü kapsadığı için header'da görüntülenecek. Siz dilerseniz saat detaylarınıda iletip, istediğiniz saatte davetiye oluşturabilirsiniz.

12.png


6) GET {{baseURL}}calendars/{{id}}/events/{{event_id}}

Burada da yukarıda GET {{baseURL}}calendars/{{id}}/events/{{event_id}} ile yaptığımız benzer işleri uygulayabilirsiniz yada en altta paylaştığım linkten direkt indirme işlemi gerçekleştirebilirsiniz.

7) DELETE {{baseURL}}calendars/{{id}}/events/{{event_id}}

  • Davetiye oluşturma güncelleme işlemini yaptıktan sonra otomasyon mantığıyla davetiyeyi silerek default hale getirelim. 

         İlk olarak api'yı url kısmına eklemesini gerçekleştiriyoruz. DELETE {{baseURL}}calendars/{{id}}/events/{{event_id}}

         Gerekli authorization işlemlerini gerçekleştiriyoruz.

         Silme işlemi gerçekleştireceğimiz için burada herhangi bir body girişi sağlamıyoruz fakat uzantıya(path) id ve event_id datasını yollamayalız. Bunuda yukarıda calendar create işlemi gerçekleştirirken id ismiyle ve appointment create işlemi gerçekleştirirken event_id ismiyle environment'e kaydedilmesini gerçekleştirmiştik.

         Şu şekilde de sorgulamanın başarılı olup olmadığını kontrol etmek için ufak bir test ekleyelim.

pm.test("Status code is 200", function () {
    pm.response.to.have.status(204);
});

13.png

        Silme işleminden sonra isterseniz get ile tekrardan sorgulama yaparak yada google calendar'a giderek kontrollerinizi gerçekleştirebilirsiniz.


14.png


8) DELETE {{baseURL}}calendars/{{id}}

  • Davetiye oluşturma güncelleme işlemlerinden calendar'ıda uçuralım ve default hale getirelim.

         İlk olarak api'yı url kısmına eklemesini gerçekleştiriyoruz. DELETE {{baseURL}}calendars/{{id}}

         Gerekli authorization işlemlerini gerçekleştiriyoruz.

         Silme işlemi gerçekleştireceğimiz için burada herhangi bir body girişi sağlamıyoruz fakat uzantıya(path) id yollamayalız. Bunuda yukarıda calendar create işlemi gerçekleştirirken id ismiyle environment'e kaydedilmesini gerçekleştirmiştik.

         Şu şekilde de sorgulamanın başarılı olup olmadığını kontrol etmek için ufak bir test ekleyelim.

pm.test("Status code is 200", function () {
    pm.response.to.have.status(204);
});

15.png

        Silme işleminden sonra isterseniz get ile tekrardan sorgulama yaparak yada google calendar'a giderek kontrollerinizi gerçekleştirebilirsiniz.

16.png


Collection ve API Linki : 

Google Calender API.postman_collection.rar


Bütün bu işlemleri otomasyon sırasına göre gerçekleştirdik, bir sonraki yazıda da bunları Collection Runner'da çalıştırarak bir yazım gerçekleştirmeyi hedefliyorum.  Eğer ki konu hakkında sizleri en azından fikir sahibi yapabildiysem ne mutlu, şimdilik görüşmek dileğiyle sağlıklı kalın. 


Etiketler : [ 15 ] Google Calendar, API, Postman, Backend Automation, Backend Otomasyon, Create, Read, Update, Delete, Get, Test, Response, Request, API, API Test,

Linked In
Giriş yap

Bu başlıkta herhangi bir yorum bulunmamaktadır