Penggunaan lanjutan Microsoft Graph

Menerapkan Keamanan Azure untuk Pengembang

Anushika Agarwal

Cloud Data Engineer

Analogi: perjalanan belanja

  • Bawa belanjaan dalam beberapa kali perjalanan

  • Lebih ringan, cepat, dan aman

Perjalanan belanja

Menerapkan Keamanan Azure untuk Pengembang

Paginasi

  • Memecah hasil besar menjadi halaman kecil
  • Respons lebih cepat dan lebih sedikit timeout
  • Bagaimana mengambil halaman berikutnya?

Paginasi

Menerapkan Keamanan Azure untuk Pengembang

Contoh: PeopleSphere menggunakan paginasi

  • Ribuan data karyawan diambil dalam halaman yang mudah dikelola

Contoh - Paginasi PeopleSphere

Menerapkan Keamanan Azure untuk Pengembang

Paginasi sisi server

  • Layanan menetapkan ukuran halaman bawaan
  • Klien tidak menentukan ukuran
  • Contoh
    • GET /v1.0/users : (default) Mengembalikan 100 item per halaman

Paginasi di sisi server

Menerapkan Keamanan Azure untuk Pengembang

Paginasi sisi klien

  • Klien menentukan jumlah item per halaman

Paginasi di sisi klien

Menerapkan Keamanan Azure untuk Pengembang

Parameter kueri untuk paginasi

  • Parameter kueri

    • $top: jumlah item per halaman.

    Parameter kueri - Top

  • $skip: offset; mulai setelah N item pertama

    Parameter kueri - Skip

Menerapkan Keamanan Azure untuk Pengembang

Contoh paginasi sisi klien

  • Contoh:
    • https://graph.microsoft.com/v1.0/groups?$top=2

Paginasi di sisi klien

Menerapkan Keamanan Azure untuk Pengembang

Analogi batching: keranjang belanja online

  • Banyak item dalam satu keranjang
  • Satu checkout, satu struk

Analogi - Keranjang belanja online

Menerapkan Keamanan Azure untuk Pengembang

Batching

  • Gabungkan beberapa permintaan Graph dalam satu panggilan HTTP
  • Satu payload -> satu respons berisi semua hasil

  • Manfaat

    • Lebih sedikit perjalanan, latensi lebih rendah
    • Ideal untuk dashboard.
  • Batas

    • Maks. 20 permintaan per batch

Batching

Menerapkan Keamanan Azure untuk Pengembang

Endpoint permintaan batch

  • Endpoint

    • Metode: POST
    • Endpoint:https://graph.microsoft.com/v1.0/$batch
  • $batch menggantikan resource spesifik seperti users

Endpoint permintaan batch

Menerapkan Keamanan Azure untuk Pengembang

Body permintaan batch

  • Body adalah objek JSON
  • Berisi satu properti: requests
  • requests adalah array (hingga 20 item)
{ "requests": 
   [ {
      "id": "1",
      "method": "GET",
      "url": "/me/memberOf"
    },
    {
      "id": "2",
      "method": "GET",
      "url": "/me/planner/tasks"
    } ]
}
Menerapkan Keamanan Azure untuk Pengembang

Item permintaan dan header

  • Setiap item permintaan perlu

    • id: label unik untuk mencocokkan respons
    • method: (GET/POST/PATCH/DELETE)
    • url: path relatif
  • Header: Content-Type: application/json

{ "requests": 
   [ {
      "id": "1",
      "method": "GET",
      "url": "/me/memberOf"
    },
    {
      "id": "2",
      "method": "GET",
      "url": "/me/planner/tasks"
    } ]
}
Menerapkan Keamanan Azure untuk Pengembang

Respons batch

  • Setiap entri mewakili satu permintaan
{
  "responses": [
    {  "id": "1", 
        "status": 200, 
        "body": { "value": [/* ... */]}},
    { 
        "id": "2", 
        "status": 403, 
        "body": { "error": [/* ... */]}}
  ]
}

Menerapkan Keamanan Azure untuk Pengembang

Isi setiap respons

  • Setiap item respons berisi

    • id: cocok dengan permintaan asal

    • status: status HTTP untuk item itu

      • 200: OK
      • 403: Dilarang
    • headers: (mis., Content-Type)

    • body: data atau objek error

{
  "responses": [
    {  "id": "1", 
        "status": 200, 
        "body": { "value": [/* ... */]}},
    { 
        "id": "2", 
        "status": 403, 
        "body": { "error": [/* ... */]}}
  ]
}

Menerapkan Keamanan Azure untuk Pengembang

Ayo berlatih!

Menerapkan Keamanan Azure untuk Pengembang

Preparing Video For Download...