API开发 - 设计考虑因素

时间:2010-06-28 12:09:58

标签: open-source

在我4年的经验中,我开发了很多Web应用程序。现在,可编程网络的概念变得越来越流行,新的API几乎每天都会发布。我想为这些端点中的一些开发一个java API /库.Ex stackapps,reddit,digg等...我想知道的是你的人,

  • 常规网络的API如何? 应用程序与这些API不同 库。或者有什么区别 这两者之间来自设计 透视
  • 什么是最好的API开发 做法。
  • 在设计API之前我需要考虑的所有因素是什么

如果细节不充分,请发表评论。

2 个答案:

答案 0 :(得分:13)

<强>稳定性

如果您为Web应用程序提供API,可能是因为您希望其他人使用它来构建应用程序。如果它不稳定,他们会讨厌强迫他们完成频繁更改。如果这花费的时间太长,他们的网站可能会长时间无法正常运行,而他们正在确定在API中执行操作的新方式。

<强>紧

您希望API 完整但紧凑,因为没有太多要记住。

<强>正交

设计它以便一种且只有一种方式来更改每个属性或触发操作。正交API中的操作应该具有最小(如果有)副作用

此外,一旦发布,从公共API中删除功能就不是一个好习惯。

安全和身份验证

由于API是面向Web的,因此您必须对每个请求进行身份验证并授予适当的访问权限。安全常识适用于此。

快速回复或分成

我相信在网络环境中,我们应该快速响应并避免需要很长时间才能完成的请求。如果这是不可避免的,那么最好发送一个ACK并将任务分成几个部分和随后的呼叫。

答案 1 :(得分:0)

根据我的经验,所有优秀的API都不是为了解决一般问题,而是为某些需要某种抽象的问题解决问题。随着需求和/或底层的变化,这种抽象正在发展。

因此,我不会找到 API来完成所有操作,而是首先找到一两个好的案例问题,因为您的API可以提供帮助。

相关问题