最近,我对 API 很感兴趣,特别是对如何创建它们很感兴趣。出于这个问题的目的,假设我创建了一个 ASP.NET MVC 站点,上面有一些数据;我想为这个网站创建一个 API。
我对此有很多疑问:
- 我应该创建什么类型的 API?我知道 REST 和 oData API 非常流行。各自的优缺点是什么,我该如何实现?到目前为止,据我了解,带有 ASP.NET MVC 的 REST API 只是返回 JSON 而不是 View 的操作,并且记录了 oData API here .
- 我如何处理写入? 从这两种 API 类型读取数据非常简单。然而,写作更复杂。通过 REST 方法,我明白我可以使用 HTTP POST,但我如何实现身份验证?此外,对于 oData,写作首先是如何工作的?
- 我如何实现基本的速率限制和缓存?根据我过去使用 API 的经验,这些都是非常重要的事情,这样 API 服务器就不会过载。设置这两件事的最佳方式是什么?
- 我能得到一些示例代码吗?任何与 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/