2012-04-19 85 views
4

举一个简单的例子,假设您在您的网站上创建留言簿,并计划通过API为创建和读取功能提供外部访问。更新和删除不会包含在API中,因为它只能在内部使用。API设计:分离内部还是外部功能?

什么是更好的做法?

  • 通过API使整个CRUD功能可用,并限制公众访问更新和删除。所以你自己也会使用API​​来完成应用程序的所有内部工作。

  • 为所有内部工作制作无内部API的内部CRUD函数,然后为创建和只读创建单独的API。基本上这给你两种使用Create和Read的方法 - 一种使用API​​,一种不使用。

  • 在没有内部工作API的情况下进行内部更新和删除功能,然后为创建和只读创建API。如果您需要使用创建和读取功能进行内部工作,则必须使用API​​。

我希望这很清楚,通常最好的做法是什么?

回答

3

我喜欢第一个选项。它有一个明确的例子,在正确的背景下分离问题和使用正确的工具。

通过对API使用CRUD方法,您可以获得一致性和完整性。它使得设计更加紧密,代码复制更少,并且更容易进化。安全方面可以在支持API的应用程序内部或外部实现。例如,对于外部选项,您可以使用三维派对软件或硬件解决方案,如防火墙。