c# - 为具有速率限制和缓存的 ASP.NET MVC 站点创建 API

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

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

我对此有很多疑问:

  1. 我应该创建什么类型的 API?我知道 REST 和 oData API 非常流行。各自的优缺点是什么,我该如何实现?到目前为止,据我了解,带有 ASP.NET MVC 的 REST API 只是返回 JSON 而不是 View 的操作,并且记录了 oData API here .
  2. 我如何处理写入? 从这两种 API 类型读取数据非常简单。然而,写作更复杂。通过 REST 方法,我明白我可以使用 HTTP POST,但我如何实现身份验证?此外,对于 oData,写作首先是如何工作的?
  3. 我如何实现基本的速率限制和缓存?根据我过去使用 API 的经验,这些都是非常重要的事情,这样 API 服务器就不会过载。设置这两件事的最佳方式是什么?
  4. 我能得到一些示例代码吗?任何与 C# 和 ASP.NET MVC 相关的代码都将不胜感激。

提前致谢!

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

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

最佳答案

REST 服务可以返回任何媒体类型。它可能是在 IANA 中列出的标准化产品,或者它可以是您创建的自定义项。

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

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

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

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

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

关于c# - 为具有速率限制和缓存的 ASP.NET MVC 站点创建 API,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2890885/

相关文章:

c# - 是否可以限制或限制可从 DLL 执行的 C# 代码的范围?

c# - 使用 HTML Agility Pack 获取内部文本

c# - 使用 ASP.NET 从 Word 文档获取文本框值?

asp.net-mvc - 在不使用 ViewModel 对象的情况下,Razor View 是否可以拥有多个模型?

c# - 从不同用户( session 室)获取共享日历

c# - 使用 ASP.NET MVC 应用程序从 HTTPS 重定向

javascript - 即使我单击“确定”,模态弹出扩展器仍保持打开状态

c# - ORA-00900 : invalid SQL statement while filling DataAdapter with Dataset. C# ASP.net

c# - ASP.net 使用 javascript 在内容页面上获取 RadioButtonList 值

asp.net - 元素 'X' 不是已知元素 - Web 应用程序