Mensimulasikan kesalahan dari API Microsoft Graph

Sekilas
Tujuan: Menguji bagaimana aplikasi Anda menangani kesalahan Microsoft Graph API
Waktu: 10 menit
Plugins:GraphRandomErrorPlugin
Prasyarat:Menyiapkan Proksi Dev

Microsoft Graph adalah kumpulan API yang memberi Anda akses ke data dan wawasan di Microsoft 365. Saat menggunakan Microsoft Graph di aplikasi, Anda harus menguji cara aplikasi menangani kesalahan API. Dev Proxy memungkinkan Anda mensimulasikan kesalahan pada Microsoft Graph API apa pun menggunakan GraphRandomErrorPlugin.

GraphRandomErrorPlugin dioptimalkan untuk berfungsi dengan Microsoft Graph dan mensimulasikan kesalahan spesifik yang dapat terjadi dari Microsoft Graph.

Untuk memulai, aktifkan GraphRandomErrorPlugin dalam file konfigurasi Anda.

Berkas: devproxyrc.json

{
  "$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v4.0.0/rc.schema.json",
  "plugins": [
    {
      "name": "GraphRandomErrorPlugin",
      "enabled": true,
      "pluginPath": "~appFolder/plugins/DevProxy.Plugins.dll",
      "configSection": "graphRandomErrorPlugin",
      "urlsToWatch": [
        "https://graph.microsoft.com/v1.0/*",
        "https://graph.microsoft.com/beta/*",
        "https://graph.microsoft.us/v1.0/*",
        "https://graph.microsoft.us/beta/*",
        "https://dod-graph.microsoft.us/v1.0/*",
        "https://dod-graph.microsoft.us/beta/*",
        "https://microsoftgraph.chinacloudapi.cn/v1.0/*",
        "https://microsoftgraph.chinacloudapi.cn/beta/*"
      ]
    }
  ]
}

Tip

Cuplikan di atas memantau permintaan untuk Microsoft Graph pada seluruh layanan cloud Microsoft. Jika Anda hanya ingin mensimulasikan kesalahan di cloud Microsoft tertentu, hapus URL yang tidak Anda butuhkan.

Mulai Dev Proxy dengan file konfigurasi Anda dan gunakan aplikasi Anda untuk melihat caranya menangani kesalahan. Untuk setiap permintaan yang cocok, Dev Proxy menentukan apakah akan mensimulasikan kesalahan atau meneruskan permintaan ke Microsoft Graph menggunakan tingkat kegagalan yang dikonfigurasi. Saat Dev Proxy mensimulasikan kesalahan, Dev Proxy secara acak memilih salah satu kesalahan yang digunakan Microsoft Graph, dan mengembalikan respons kesalahan ke aplikasi Anda.

Konfigurasikan kesalahan untuk simulasi

Secara bawaan, GraphRandomErrorPlugin mensimulasikan kesalahan berikut.

metode HTTP Kemungkinan kesalahan
GET 429 Too Many Requests 500 Internal Server Error 502 Bad Gateway 503 Service Unavailable 504 Gateway Timeout
POST 429 Too Many Requests, 500 Internal Server Error502 Bad Gateway, 503 Service Unavailable, 504 Gateway Timeout, 507 Insufficient Storage
PUT 429 Too Many Requests, 500 Internal Server Error502 Bad Gateway, 503 Service Unavailable, 504 Gateway Timeout, 507 Insufficient Storage
PATCH 429 Too Many Requests 500 Internal Server Error 502 Bad Gateway 503 Service Unavailable 504 Gateway Timeout
DELETE 429 Too Many Requests, 500 Internal Server Error502 Bad Gateway, 503 Service Unavailable, 504 Gateway Timeout, 507 Insufficient Storage

Jika Anda ingin menguji perilaku tertentu, seperti pembatasan, konfigurasikan plugin untuk menggunakan hanya kesalahan yang relevan menggunakan opsi --allowed-errors.

devproxy --allowed-errors 429

Atau, Anda dapat mengonfigurasi allowedErrors properti di graphRandomErrorPlugin objek dalam file konfigurasi Anda.

Berkas: devproxyrc.json

{
  "graphRandomErrorPlugin": {
    "$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v4.0.0/graphrandomerrorplugin.schema.json",
    "allowedErrors": [ 429 ]
  }
}

Dev Proxy hanya menggunakan kesalahan yang diizinkan yang berlaku untuk setiap metode HTTP, seperti yang tercantum dalam tabel sebelumnya. Jika tidak ada kesalahan yang diizinkan yang berlaku untuk suatu metode, Dev Proxy meneruskan permintaan dengan metode tersebut ke Microsoft Graph. Misalnya, jika Anda hanya mengizinkan 507, Dev Proxy menggagalkan permintaan POST, PUT, dan DELETE, tetapi meneruskan permintaan GET dan PATCH. Dev Proxy juga meneruskan permintaan dengan metode yang tidak tercantum dalam tabel, seperti HEAD atau OPTIONS.

Mensimulasikan kesalahan dalam permintaan batch Microsoft Graph

Dev Proxy mensimulasikan kesalahan dalam permintaan batch ke Microsoft Graph dengan cara yang sama seperti halnya untuk permintaan reguler. Ketika Proksi Dev gagal memproses satu atau lebih permintaan dalam batch, Proksi Dev mengembalikan respons 424 Failed Dependency untuk seluruh batch, sama seperti Microsoft Graph.

Jika ada permintaan dalam batch menggunakan metode yang tidak sesuai dengan kesalahan yang diizinkan mana pun, Dev Proxy meneruskan seluruh batch ke Microsoft Graph, karena respons batch harus menyertakan respons untuk setiap permintaan dalam batch.

Lihat juga