使用速率限制和缓存为ASP.NET MVC站点创建API

时间:2010-05-23 06:48:42

标签: c# asp.net asp.net-mvc api rest

最近,我对API非常感兴趣,特别是如何创建它们。出于这个问题的目的,让我们说我创建了一个ASP.NET MVC站点,其上有一些数据;我想为这个网站创建一个API。

我对此有很多疑问:

  1. 我应该创建什么类型的API?我知道REST和oData API非常受欢迎。每种方法的优缺点是什么,以及如何实施它们?根据我的理解,到目前为止,使用ASP.NET MVC的REST API只是返回JSON而不是Views的操作,并且oData API被记录为here
  2. 我如何处理写作?从这两种API类型中读取非常简单。但是,写作更复杂。使用REST方法,我知道我可以使用HTTP POST,但是如何实现身份验证?另外,使用oData,首先如何写作?
  3. 如何实施基本的速率限制和缓存?根据我过去的API使用经验,这些非常重要,因此API服务器不会过载。设置这两件事的最佳方法是什么?
  4. 我可以获得一些示例代码吗?任何与C#和ASP.NET MVC相关的代码都将受到赞赏。
  5. 提前致谢!

    虽然这是一个广泛的问题,但我认为它不是广泛......:)

    这个问题与API有一些类似的问题,但我没有找到任何直接解决我在此概述的问题的问题。

1 个答案:

答案 0 :(得分:2)

REST服务可以返回任何媒体类型。它可以是IANA列出的标准化版本,也可以是您创建的自定义版本。

OData是建立在AtomPub之上的协议。 AtomPub本身就是RESTful,但是,OData目前打破了一些REST约束。

最好使用HTTP Authorization标头对RESTful服务进行身份验证。

您使用与AtomPub服务相同的方式写入OData服务。阅读规范。

就个人而言,我担心编写有价值的服务,在担心速率限制之前有效地提供内容。当你最终遇到这个问题时,你会很高兴。

有关缓存的更多信息,请阅读this