簡體   English   中英

帶有圖像的 RESTful GET

[英]RESTful GET with image

我有一個 REST API,我正在添加一個新的 function,它允許用戶根據他們提供的條形碼圖像從資源中GET一些信息。

我的問題是:就最佳實踐而言,正確的方法是什么?

以下是我對這個問題的一些想法。

得到:

使用GET ,我通常會像這樣在 URI 中指定條件: foo?name=bar ,但由於長度原因,以相同方式傳遞圖像數據很可能會失敗( 請看這個)。

根據這些答案,在正文中傳遞數據而不是 URI 似乎也不是一個好的解決方案。

郵政:

不過,我可以使用POST請求,但這不是很 RESTful,因為我只是在檢索信息。

你的資源會做兩件事

  1. 分析條形碼圖像並獲得一些 id
  2. 使用上面的 id 向客戶端提供從某些(數據)源檢索的信息

您可以 model 分析條碼圖像作為資源BarCodes 此資源接受通過POST提交的圖像請求,分析條形碼圖像 (1) 並在位置header 返回一個 URL,可用於檢索一些數據 (2)。

這種方法將您想要在兩個資源/步驟中實現的兩個功能分開。

您可以通過這種方法獲得:

  • REST 符合接口
  • 您可以決定異步處理條碼圖像提取任務,並在位置 header 中僅返回一個 URL 以檢索有關條碼提取過程的狀態
  • 條形碼分析和信息檢索的獨立功能

首先,從瀏覽器將圖像(文件)數據傳遞到 web 服務器的唯一方法是通過 POST 請求。 在尋找最佳解決方案時請注意這一點。

其次,RESTful 資源 model 的含義是資源具有非常短的字符串或數字的標識符,並由服務器在創建時分配以供客戶端以后使用。

您的問題不完全適合 REST model。因此您很清楚 go 並使用實際可行的任何方法。

在 RESTful 服務上,資源是使用一組固定的操作來操縱的:

PUT : creates a new resource, which can be then deleted using DELETE
GET : retrieves the current state of a resource
POST: transfers a new state onto a resource

在您的情況下,您應該尋找GET操作。 具有大量輸入數據的請求無法在 URI 中編碼的問題(即錯誤 414:URO 太長))僅當您必須在 URI 中傳遞長參數時才會出現問題,這是 REST 的一個限制,用於檢索這不是問題,我嘗試了 REST 服務,該服務返回一組 XML 文件。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM