在网上创建API意味着什么?

Che*_*hev 6 c# asp.net api asp.net-mvc web-services

我有一个在ASP.NET MVC中构建的站点,并使用大量的jQuery客户端交互来构建实时聊天室.许多用户解析了javascript并找到了它发布到的URL以便与聊天进行交互.他们开始制作机器人,以便在聊天频道中玩游戏.

这些用户不断要求提供"API",以便他们更容易进行编码.我以为我知道什么是API,但我想我还是有点模糊.API不是第三方可以与之交互的任何接口吗?

为我的网站构建Web API意味着什么?它只是一个包含URL列表以及如何与它们交互的文档吗?

我也听说过Web服务和Web引用.这些是什么?构建Web服务意味着什么?这与网络上的API有什么关系吗?

Ada*_*erg 5

从字面上看,API是“应用程序编程接口”。从最基本的角度来看,它是为其他软件设计的用于与之交互或通信的任何接口。从某种意义上说,您的开放URL是API。当然,用作用户界面的入口点通常不适用于编写其他软件,因此,尽管它们是API,但它们可能不是很好的 API,您可能会发现自己遇到性能问题很快动手。

Web API是Web服务器上运行的应用程序上的入口点,允许其他工具以某种方式与该Web服务进行交互。可以将其视为软件的“用户界面”。但是,您的软件需要适当的安全性和访问控制。考虑速率限制,否则您可能会冒出非常激进的机器人淹没服务器的风险。但是,该速率限制也必须在用户的用户界面中,否则有人会简单地针对它编写脚本。

Web服务是在面向Internet的服务器上运行的任何应用程序,可以通过Internet与之交互,通常可以使用API​​,该API允许其他基于Web的实用程序将您的服务用作其功能的一部分。

URL和如何与他们互动的名单是所有任何网络API是,在最后。当今的Web API设计几乎总是涉及身份验证和安全令牌(您可能应该研究Twitter等使用的OAuth身份验证模型),并且存在各种有关如何发送数据的竞争标准,其中JSON是其中之一。比较受欢迎的选项。记录您的接口确实会将其转换为API,但是您可能需要花费一些时间来确定这是否真的是软件与Web服务交互的“正确”方式-发布API后,对其进行更改会破坏所有取决于您的服务!