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

本文关键字:意味着 什么 API 创建 网络 | 更新日期: 2023-09-27 17:58:27

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

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

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

我也听说过网络服务和网络参考资料。它们是什么?构建web服务意味着什么?这与网络上的API有关吗?

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

API实际上是一个"应用程序编程接口"。在最基本的层面上,它是为其他软件设计的任何接口。从某种意义上说,你的开放URL就是API。当然,作为用户界面的入口点在编写其他软件时往往没有得到很好的考虑,所以虽然它们是API,但可能不是很好的API,而且你可能很快就会发现自己面临性能问题。

Web API是运行在Web服务器上的应用程序的入口点,允许其他工具以某种方式与该Web服务交互。把它想象成软件的"用户界面"。但是,您的软件需要适当的安全性和访问控制。考虑限制速率,否则你会面临一个非常激进的机器人淹没你的服务器的风险。但这种速率限制也需要出现在人类的用户界面中,否则就会有人简单地针对它编写脚本

web服务是运行在Internet-facing服务器上的任何应用程序,可以通过Internet进行交互,通常使用API,允许其他基于web的实用程序将您的服务作为其功能的一部分。

URL列表以及如何与它们交互都是任何web API最终都是。现代web API设计几乎总是涉及身份验证和安全令牌(您可能应该研究Twitter等使用的OAuth身份验证模型),并且在如何发送数据方面存在各种竞争标准,其中JSON是更受欢迎的选项之一。记录你的界面确实会把它变成一个API,但你可能需要花一些时间来决定这是否真的是软件与你的web服务交互的"正确"方式-一旦你发布了API,更改它就会破坏任何依赖于你的服务的东西!

API或应用程序编程接口是一组已建立的协议,用于外部程序与应用程序交互。正如您所说,用户解析javascript并发现您使用的URL,然后使用这些URL构建程序与您的应用程序交互。

从技术上讲,你已经有了API,他们已经发现了它——这组URL控制着打开聊天室、发布到聊天室、阅读他人的帖子。然而,您的用户所要求的是一套更加成熟、结构化的方法。

这种方法可能包括对应用程序的身份验证,以及从应用程序传递回外部程序的消息和/或数据,允许外部程序知道其请求发生了什么(而不仅仅是HTML返回,或者什么都没有),比如"成功"、"错误"、"不可用重试"等。

它将是一组为ASP.NET MVC提供接口的函数。像"开始聊天"或"发送信息"这样的功能。它还将涉及一些安全调整,以允许其他用户访问您的服务器。

他们要求让他们的机器人发布到的URL非常清晰,定义明确。

通常,这些"web api"在POST中获取结构化数据,或在GET中获取CGI变量,并且不返回HTML,而是返回XML或json或其他一些编程友好的返回数据。

这就是要点!

在最简单的形式中,你可以按照你在倒数第二段中的建议,记录你已经在使用的API(因为听起来他们已经可以在某种程度上使用你的"内部"API)。

但是,如果你想做得"正确",你可能需要回去看看你写的代码,找到方法让它对第三方更友好,如果你要让人们更容易使用,还可能"强化"它以抵御攻击。