API开发 - 设计考虑因素

che*_*ine 6 open-source

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

  • 常规Web应用程序的API与这些库的API有何不同.或者从设计角度来看这两者有什么区别
  • 什么是最好的API开发实践.
  • 在设计API之前,我需要考虑哪些因素

.

如果细节不充分,请评论.

bak*_*kal 13

稳定性

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

紧凑

您希望API 完整但紧凑,因为不需要记住太多.

正交

设计它所以只有一种方法可以改变每个属性或触发一个动作.正交API中的操作应该具有最小(如果有的话)副作用.

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

安全和身份验证

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

快速响应或分成几部分

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