本卡屬 FR-161(母卡見「母卡」欄),第 2 棒:事前資料本身的 API。接在卡 1 之後。

這張卡做什麼(白話)

客戶在事前資料頁上傳檔案、上傳新版、看舊版、刪除、標記過時、一次下載全部,這張卡做這些動作背後的 API。畫面在卡 4。這張先不碰資源庫的程序書池;把事前資料同步進程序書池是卡 3 的事。

怎麼做

在卡 1 建好的 pre_engagement 模組裡補資料與版本的 app service 與 API。上傳流程沿用既有做法:FE 先 POST /file/upload 拿到 file_uid,再呼叫業務 API(參考 api/oscal/routes/ssp/ssp_document_pool_route.py 與 app/oscal/service/ssp_document_pool_service.py:add_to_pool 如何把 file_uid 換成 upload_files.id,找不到時的錯誤處理也照抄)。

GET    /pre-engagement/files                       upload;依大類分組
POST   /pre-engagement/files                       upload;{category_uid, file_uid, title?},建資料+v1
POST   /pre-engagement/files/check-duplicate       upload;{category_uid, file_name}
POST   /pre-engagement/files/<uid>/versions        upload;{file_uid},version_no=目前最大+1
PUT    /pre-engagement/files/<uid>                 upload;{title?, category_uid?, is_obsolete?}
DELETE /pre-engagement/files/<uid>                 upload
GET    /pre-engagement/files/archive               upload;所有未過時資料的最新版打成 zip

手測

紀律