# 線上面試 Template - Check List (WebAPI)
###### tags: `線上面試一面`
## 程式設計需求
```plantuml
left to right direction
actor "Member A" as ma
actor "Admin" as adm
rectangle "Check List" {
usecase "View Items" as uc1
usecase "Check / UnCheck Item" as uc2
usecase "Items CRUD" as uc3
}
ma --> uc1
ma --> uc2
adm -up-> uc3
```
1. 請說明若要請你依需求設計此系統, 你會如何用什麼架構處理?
2. Member A 必須要先登入後才能使用 API, 需要實作那些部份? 請簡單畫出流程圖。
3. 如果 API 需要對每個 request 進行驗證, 你會在什麼地方處理?
5. 如果我的 API 要在 DI 裡註冊 EF, service lifetime 應該設為那個選項? 為什麼?
6. 如果我的 API 要對同一個資源 "Item" 進行單筆新增/刪除/修改/查詢, 你會怎麼設計?
7. 如果前端是 web.sample.com 呼叫 api.sample.com 會被瀏覽器擋下來, 我應該做什麼設定?
---
## 系統架構配置
```plantuml
actor "User" as user
rectangle "AP" as ap
database "DB" as db
user -> ap
ap -> db
```
1. 如果大量 user 訪問造成 AP loading 增加, 你會做那些處置?
2. 如果大量 user 對 Item 進行大量交易, 你會做那些處理?