api - 用于非基于 Web 的应用程序的 REST 类型 API,这是一个好主意吗?

标签 api rest middleware

我们正在开发 C++ 和 Java 中间件 SDK,供游戏开发人员、动画软件开发人员、阿凡达开发人员等用作库/DLL,以增强他们的产品。

在使用针对特定函数的特定调用创建了典型的 API 之后,我正在考虑通过使用 REST 类型 API(GET、PUT、POST、DELETE)或 CRUD 类型(CREATE、READ、UPDATE、DELETE)接口(interface)来简化 API。

这将以类似于客户端-服务器类型 REST API 的方式工作,其中只有 4 种可能的 API 调用,但这些可以采用灵活的参数。

这似乎有利于使 API 稳定,因为不会添加新调用,也不会删除旧调用。因此,此 API 的使用者不必担心必须重新编译和更改他们的代码以适应我们中间件的任何更新。

开销是中间件 Controller 中有一个额外的重定向层来路由 API 调用,开发人员需要知道每个 REST 调用可用的参数(当然提供)。

到目前为止,我还没有看到这个系统在 Web 类型的客户端服务器应用程序之外使用,所以我的问题是:这是一个可行的想法吗?

我考虑的是它的效率,以及游戏开发者是否会觉得它易于使用。

最佳答案

是的,这是一个可行的想法。但我不确定 yield 是否能抵消成本。 REST 最适用于网络应用场景,以请求和响应为导向。虽然统一界面具有明确的学习曲线优势,但这些优势几乎可以在任何提供合理抽象过程的精心设计的 API 中体现。

您还表达了对游戏开发者是否会发现 RESTful API 易于使用的担忧。我会怀疑的。我已经实现了许多 RESTful Web 服务,并帮助许多开发人员加快构建和使用它们的速度,掌握 REST 所需的概念飞跃对于多年来一直沉浸在过程 API 中的人来说可能是巨大的。我认为游戏开发者尤其会与程序 API 紧密相连,以至于尝试采用不同的范例,无论其好处如何,都可能证明是极其困难的。

关于api - 用于非基于 Web 的应用程序的 REST 类型 API,这是一个好主意吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62513/

相关文章:

java - 这是从 JSR305 使用 javax.annotation 的正确方法吗?

angular - Angular-in-memory-web-api 中的多个集合

java - 如何从 Java 客户端向 POST 请求发送查询参数,并使用 @QueryParam 接收

java - 这种取消/中止异步 servlet 处理的方法存在任何问题

rest - 寻找基于 REST 的远程文件系统

PHP - 使用 Mailchimp API 订阅群组

python - 如何在 Flask 应用程序中设置 api 前缀?

go - 如何将参数传递给 Go 中的 alice 中间件?

java - LMAX Disruptor 如何解决典型的消息代理问题?

c# - ASP.NET MVC 6 AspNet.Session 错误 - 无法解析类型服务?