REST类型API用于非基于web的应用程序,这是一个好主意吗? 我们正在开发一个中间件SDK,它既可以在C++中被使用,也可以用java作为一个库/ DLL,例如游戏开发者、动画软件开发人员、化身开发者来增强他们的产品。

REST类型API用于非基于web的应用程序,这是一个好主意吗? 我们正在开发一个中间件SDK,它既可以在C++中被使用,也可以用java作为一个库/ DLL,例如游戏开发者、动画软件开发人员、化身开发者来增强他们的产品。,api,rest,middleware,Api,Rest,Middleware,在使用特定函数的特定调用创建了一个典型的API之后,我正在考虑通过使用REST类型API(GET、PUT、POST、DELETE)或CRUD类型(CREATE、READ、UPDATE、DELETE)接口来简化API 这与客户机-服务器类型REST API的工作方式类似,其中只有4个可能的API调用,但这些调用可以采用灵活的参数 这似乎有助于使API稳定,因为不会添加新调用,也不会删除旧调用。因此,此API的使用者不必担心必须重新编译和更改代码以适应中间件的任何更新 开销在于中间件控制器中有一个额

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

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

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

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

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


我考虑的是它的效率,比如说游戏开发者会发现它很容易使用。

是的,这是一个可行的想法。但我不确定这些好处是否足以证明成本的合理性。REST最好应用于网络应用程序场景,面向请求和响应。虽然统一接口有明确的学习曲线优势,但这些优势可以体现在几乎任何设计良好的API中,该API提供了合理的抽象过程


您还表示担心游戏开发人员是否会发现RESTful API易于使用。我会怀疑的。我已经实现了许多RESTful web服务,并帮助许多开发人员加快了构建和使用它们的速度,而掌握REST所需的概念性飞跃对于多年沉迷于过程API的人来说可能是巨大的。我认为游戏开发人员尤其与过程API有着密切的联系,以至于尝试采用不同的范例,无论其好处如何,都可能是极其困难的。

记住REST不是HTTP特有的,并且不仅仅依赖于4个HTTP动词。您拥有和可以使用的动词取决于您使用的协议