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

Max*_*sky 6 c# asp.net api rest asp.net-mvc

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

我对此有很多疑问:

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

提前致谢!

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

关于API有一些类似的问题,但我没有发现任何直接解决我在此概述的问题.

Dar*_*ler 2

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

OData 是基于AtomPub构建的协议。AtomPub 本身是 RESTful,但是,OData 目前打破了一些 REST 约束。

RESTful 服务的身份验证最好使用 HTTP 授权标头来完成。

写入 OData 服务的方式与写入 AtomPub 服务的方式相同。阅读规格。

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

有关缓存的更多信息,请阅读此内容