内化REST API概念

时间:2010-11-17 17:33:44

标签: api rest

我很难将自己的想法包围在某些事物中,并且会欣赏一些关于这个概念的阅读材料。

我正在编写一个依赖于通过URI方案提供API调用的应用程序。 example.com/company/user/123123。获取URI字符串并将其转换为动作的方面是有意义的。

但是我感到困惑的是在MVC结构中采用该过程并进行利用。我是否使用模型或库构建调用?我的目标是能够执行类似$ this-> company-> user(12311)的操作,以便我可以在外部和内部使用API​​功能。

另外,如何在不暴露核心代码的情况下访问此功能?

1 个答案:

答案 0 :(得分:2)

API这个词的一个最大问题是,它无法区分您何时进行本地进程中呼叫以及何时进行远程呼叫。这是RPC样式的本质,使用相同的编程模型,无论要执行的代码在何处存在。

REST明确关于进行分布式计算,并针对这些场景进行了优化。尝试将RESTful接口用作本地API可能会产生非常低效的内容。

我建议不要尝试在内部和外部使用相同的API,我会更进一步说,尽量不要将REST视为构建API的一种方式。 REST是一种构建分布式系统的方法,需要从整体上考虑系统。

为了更具体地解决您的问题,我使用MVC方法在我的系统中公开资源。模型是资源,视图是表示。构建RESTful系统的关键是识别模型之间的链接。这些链接作为嵌入式链接呈现在respresentations中。此外,请考虑您的模型应该比域模型更像Presentation Models,因为RESTful接口更多的是暴露系统的使用场景而不是暴露域模型。