iT邦幫忙

2022 iThome 鐵人賽

DAY 26
0
Modern Web

30天學習Tauri系列 第 26

26.Tauri http

  • 分享至 

  • xImage
  •  

今天來簡單的介紹一下Tauri裡的http,http能讓我們訪問用Rust編寫的HTTP Client端。

如果我們要使用要使用window.__TAURI__.http來獲取的話,要到todo\src-tauri\tauri.conf.json將其設定為true

ex.tauri.conf.json

{
  "tauri": {
    "allowlist": {
      "http": {
        "all": true, // enable all http APIs
        "request": true // enable HTTP request API
      }
    }
  }
}

關於Security

我們也可以對我們的URL和路徑來制定scope,來達到只允許向此Scope發出HTTP請求

ex.

{
  "tauri": {
    "allowlist": {
      "http": {
        "scope": ["https://api.github.com/repos/tauri-apps/*"]
      }
    }
  }
}

關於fetch的class

  • Body :用於 POST 和 PUT 請求的主體對象
  • Client :關於定義Client端的對象
  • Response<T> :關於響應對象

fetch函式

  • fetch<T>(url: string, options?: FetchOptions): Promise<Response<T>> : 使用默認Client端執行 HTTP 請求

  • getClient(options?: ClientOptions): Promise<Client> : 使用指定的選項創建一個新Client端

fetch使用方式

ex.透過fetch來獲取資料並傳遞到我們fronted端

import { fetch } from '@tauri-apps/api/http';
const response = await fetch('http://localhost:3003/users/1', {
  method: 'GET',
  timeout: 30,
});

fetch vs invoke

fetch和invoke的差別,在於fetch是我們frontend從網路上來獲取資料,而invoke則是從frontend和backend間來傳遞資料。為什麼Tauri不直接從backend端直接從網路上來獲取資料,因為這樣子能增強安全性,藉由frontend端來做隔離,避免惡意資料直接傳遞到backend端,並在系統上直接進行操作。


今天簡單的介紹了Tauri的http方式,明天我們接著將我們的App來獲取目前的天氣,我們明天見


上一篇
25.實作Tauri Todo - 加入快捷鍵
下一篇
27.實作Tauri Todo - 從API上獲取天氣資訊
系列文
30天學習Tauri30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言