NKUST-ITC / NKUST-AP-API

NKUST-AP-v3-完善計畫
MIT License
7 stars 5 forks source link

請假功能 送出假單的資料格式問題 #44

Closed takidog closed 4 years ago

takidog commented 5 years ago

目前請假功能爬蟲部分已經完成 但在API串接上有部份格式需要討論

目前

目前的/leaves/submit 需要post的資料是 application/json

{
  "days": [
    {
      "day": "2019/03/03",
      "class": [
        "A",
        "3",
        "5"
      ]
    },
    {
      "day": "2019/03/05",
      "class": [
        "2",
        "3"
      ]
    }
  ],
  "leaveType": "21",
  "teacherId": "10041",
  "reasonText": "我不當人類拉 JOJO!!!!!"
}

欄位上資料上並沒有任何問題

問題

這次請假功能是需要包含「請假證明」的,必須要有傳遞圖片的方式

提供以下幾種討論


1. 改為multipart/form-data

跟基本的form-data並無太大差異 POST的資料

leavesData: "{"days":"2019/03/03".....}"
leavesProof: image file  

如果將leavesData中的json改成form-data的欄位 會造成後端資料處理繁瑣,我的建議是 我給的POST資料這樣 (falcon 現階段不支援 multipart 可以透過內建cgi 或是外部庫擴充 ) (falcon 官方說是未來功能之一)


2-1. 一樣為json ,但透過第三方圖片伺服器

(前端可串接第三方的圖片上傳服務)

在原有的POST資料中加入proof_url的欄位 後端再依據欄位中的url去下載圖片並上傳給學校


2-2. 一樣為json ,但透過我們開的API上傳圖片

再另開一個API提供上傳圖片的服務 舉例/leaves/submit/proof/upload 並返回一組

{
    "imageHash":"fovobgpsd33dfefp"
}

在原有的API POST資料上加入這個欄位


2-3. 一樣為json ,但透過base64包含在原json

圖片轉為base64後,放入原POST json資料中

takidog commented 5 years ago

@abc873693 麻煩了 有哪邊看不懂的再通知一下

abc873693 commented 5 years ago

目前請假功能爬蟲部分已經完成 但在API串接上有部份格式需要討論

目前

目前的/leaves/submit 需要post的資料是 application/json

{
  "days": [
    {
      "day": "2019/03/03",
      "class": [
        "A",
        "3",
        "5"
      ]
    },
    {
      "day": "2019/03/05",
      "class": [
        "2",
        "3"
      ]
    }
  ],
  "leaveType": "21",
  "teacherId": "10041",
  "reasonText": "我不當人類拉 JOJO!!!!!"
}

欄位上資料上並沒有任何問題

問題

這次請假功能是需要包含「請假證明」的,必須要有傳遞圖片的方式

提供以下幾種討論

1. 改為multipart/form-data

跟基本的form-data並無太大差異 POST的資料

leavesData: "{"days":"2019/03/03".....}"
leavesProof: image file  

如果將leavesData中的json改成form-data的欄位 會造成後端資料處理繁瑣,我的建議是 我給的POST資料這樣 (falcon 現階段不支援 multipart 可以透過內建cgi 或是外部庫擴充 ) (falcon 官方說是未來功能之一)

2-1. 一樣為json ,但透過第三方圖片伺服器

(前端可串接第三方的圖片上傳服務)

在原有的POST資料中加入proof_url的欄位 後端再依據欄位中的url去下載圖片並上傳給學校

2-2. 一樣為json ,但透過我們開的API上傳圖片

再另開一個API提供上傳圖片的服務 舉例/leaves/submit/proof/upload 並返回一組

{
    "imageHash":"fovobgpsd33dfefp"
}

在原有的API POST資料上加入這個欄位

2-3. 一樣為json ,但透過base64包含在原json

圖片轉為base64後,放入原POST json資料中

我覺得方案一較為合適 讓API簡單一點就好 文件說明清楚即可

沒問題就改一下文件再實作

abc873693 commented 4 years ago

46