带有图像处理的 REST API?

Posted

技术标签:

【中文标题】带有图像处理的 REST API?【英文标题】:REST API with image processing? 【发布时间】:2021-07-23 08:27:44 【问题描述】:

这可能不是一个好问题,但我是 API 和 REST API 的新手。我了解 API 的作用,并对 REST API(GET、POST、SET 等)有大致的了解。

在我见过的几乎所有示例中,我感到困惑的是,REST API 与数据库相关(查询数据、更新数据、插入新数据等)。所以我想知道,如果我想创建一个 API,我可以在其中发送图像,在后端(在 Python 中)处理它并返回一些图像和注释,这是否仍被视为 REST API,是否有任何约定/建议这种东西?

这样做的最佳方法是什么?对于上下文,我从 React Native 前端获取图像并想在 python 中进行图像处理(我知道这仍然很模糊)。

【问题讨论】:

定义是模糊的,但 REST API 通常确实涉及操作存储在服务器上的对象。在某种程度上,REST 是关于一致的 URL 设计。如果您只是获取对象、处理它们并返回它们,那么它就不是真正的 API。这只是一个 URL。 您认为最好的方法是什么?对于上下文,我从 react native 前端获取图像并想在 python 中进行图像处理(我知道这仍然很模糊) “最佳方式”是什么?如果这只是前端使用的 Web 服务,那么您可以做任何有意义的事情。也许你应该勾勒出一些场景,看看哪些 URL 对你有意义;你可以做mysite.com/adjust.py?brightness=+10&saturation=-5。或分开为mysite.com/adjust/brightness?v=+10 【参考方案1】:

你绝对可以这样做,你必须与数据库交互才能成为一个 API,例如,你可以创建一个简单的函数来获取

from flask import Flask, request

app = Flask(__name__)


def do_image_processing(image):
  print("doing some image processing ")
  return "Response"
  
  
@app.route('/')
def index():
  image = request.files.get('image')
  response = do_image_processing(image)
  return response

当你的 API 接收到一张图片,做一些处理,然后返回反馈给用户时调用

您还可以在 Github 上查看old project,这是一个 API,它接收图像并使用移动对象根据与您的任务相关的图像希望推荐标签

【讨论】:

【参考方案2】:

简单的试金石:如果您可以将其想象为一个网站,那么它可以是一个 REST API。

REST 毕竟是万维网的architectural style,也就是说,它是确保网络具有它所拥有的属性的架构约束的集合。

通常的方法是从 HTTP 开始,它是transferring documents over a network 的应用协议。因此,您创建了一个外观,人们通过检索文档从您那里获取信息,并通过转发文档将信息发送给您,然后您在该外观后面进行真正的工作。

如果我想创建一个可以发送图像的 API,在后端(在 Python 中)处理它并返回一些图像和注释,这是否仍被视为 REST API

您可以构建一个 REST API 来做到这一点。提示:我们已经有了 html 表单,提供文件上传的输入控件,以及可以将文件嵌入 HTTP 请求的表单处理规则等。

【讨论】:

以上是关于带有图像处理的 REST API?的主要内容,如果未能解决你的问题,请参考以下文章

多次/循环请求 REST API 时处理连接丢失(客户端)

如何在 AngularJS 中处理来自 REST Api 的日期字段?

带有队列的长时间运行的 REST API

如何使用 Swift URLSession 通过 REST api 将图像和其他参数作为表单数据发布?

带有 PHP SDK 的 Paypal REST API - 如何获取交易号?

laravel rest api将文件上传到服务器