# react-question **Repository Path**: saronYu/react-question ## Basic Information - **Project Name**: react-question - **Description**: 架构request请求 - **Primary Language**: JavaScript - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2024-11-08 - **Last Updated**: 2024-11-11 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # React Questions ## Question 1 定義 request `src/api` 目錄下的文件均為後端生成的,現需定義 `src/core/request` 中的實例以滿足 `src/api/interface` 下的接口請求 該 request 實例基於 axios 拓展,令到`queryParams`,`pathVariables`,`body`,`response`都擁有類型,`ignoreAuth`欄位決定請求是否需要帶 token,透過`silentError`和`throwError`欄位決定請求失敗的處理方式 ### 要求 - 管理 token 包括 token 的取得、持久化、刷新、刪除,對應接口在 `src/api/interface/auth.ts` - 定義請求失敗的默認行為,暫定為彈出 toast。該行為需抽象出 interface 以適配任何 ui 框架 ## 实现步骤 2.1. Token 管理 我们使用本地存储来管理 accessToken 和 refreshToken,并且在请求时,如果 accessToken 失效,则尝试使用 refreshToken 刷新。 2.2. 错误处理 默认的错误处理机制使用 toast 弹出错误信息,若 silentError 为 true,则不会显示错误提示;若 throwError 为 true,则抛出异常。 2.3. 请求实例 在 request 实例中,我们需要处理以下内容: 拼接路径参数:pathVariables 会动态填充到 URL 中。 请求头设置:根据 ignoreAuth 决定是否附带 Authorization 头。 请求处理:通过 axios 发起请求并处理响应或错误。