【问题标题】:Creating an API for an ASP.NET MVC site with rate-limiting and caching为具有速率限制和缓存的 ASP.NET MVC 站点创建 API
【发布时间】:2011-02-22 20:52:01
【问题描述】:

最近,我对 API 非常感兴趣,特别是如何创建它们。对于这个问题,假设我创建了一个 ASP.NET MVC 站点,其中包含一些数据;我想为此网站创建一个 API。

我对此有多个问题:

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

提前致谢!

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

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

【问题讨论】:

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


    【解决方案1】:

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

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

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

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

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

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

    【讨论】:

    • 您能否指出任何涉及 C# 和 ASP.NET MVC 的示例代码?还是谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-01-27
    • 1970-01-01
    • 2013-01-27
    • 1970-01-01
    • 2017-03-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多