五个HTTP Web开发库概述

程序员在开发Web项目时必须解决的最重要任务之一是组织此类项目的客户端和服务器部分之间的数据交换。 看起来可能是这样的:用户按下浏览器中打开的页面上的某个按钮,系统以向服务器的请求作为响应,然后服务器将请求的数据发送给页面。 为了在不重新加载的情况下在页面上显示此类数据,将对其进行处理,然后更新页面,用户将收到所需的信息。



AJAX技术是此类系统交互的基石,在应用程序中使用XMLHttpRequest对象的实例。 为了使程序员更轻松地使用AJAX和XMLHttpRequest ,已经创建了专门的库,这些库为开发人员提供了方便的接口,从而无需使用低级机制。

该材料是我们今天发布的译文,致力于分析使用HTTP的五个流行工具:Axios,Request,Superagent,Fetch和Supertest。

Axios


用于执行HTTP请求的Axios库基于Promise。 它适合在Node.js和浏览器应用程序中使用。 该库支持所有现代浏览器,包括IE8 +。

▍优势


  • 在Node.js环境和浏览器中工作。
  • 支持承诺。
  • 允许您执行和取消请求。
  • 允许您设置响应超时。
  • 支持针对XSRF攻击的防护。
  • 允许拦截请求和响应。
  • 支持数据上传进度指示。
  • 广泛用于基于React和Vue的项目中。

▍弱点


  • 该库很难使用。

超级代理


与Axios一样, Superagent库也适用于Node.js和现代浏览器。 它为开发人员提供了一个易于使用的简单易懂的API。

要使用Superagent执行HTTP请求,只需调用适当的request对象方法:

 request   .get('')   .then(res => log(res))   .catch(err => log(err)) 

▍优势


  • 支持插件。
  • 可配置的。
  • 它具有用于发出HTTP请求的好界面。
  • 支持链接多个呼叫以完成查询。
  • 在Node.js环境和浏览器中工作。
  • 支持进度显示,以上传和下载数据。
  • 支持分块传输编码机制。
  • 支持回调。
  • 已经为该库开发了许多插件。

▍弱点


  • 它具有一种不符合任何标准的API。

索取


与先前审查的工具相比, 请求库是用于执行HTTP请求的简化工具。 使用此库时,与使用其他库相比,您必须编写更少的代码。 它不使用promise,但是如果您需要此功能,则可以使用Request-Promise库,该库实现Request库的包装,并允许您使用promise。

▍优势


  • 易于使用的API。

▍弱点


  • 该库不使用promise。

取得


不同于本文中介绍的其他工具, 提取不是库。 这是标准的浏览器API,是XMLHttpRequest的替代方法。

▍优势


  • 灵活性和易用性。
  • 使用promise,可以避免“回调地狱”。
  • 所有现代浏览器的支持。
  • 遵循请求-响应方法。
  • 简单而美观的语法。
  • 在React Native中受支持。

▍弱点


  • 在服务器环境中不起作用。
  • 它没有实现HTTP库中可用的某些功能,例如取消请求。
  • 不包含对默认参数的内置支持,例如请求模式,标头,凭据。

超级测试


Supertest库基于Superagent库。 它旨在测试基于Node.js构建的HTTP服务器。 Supertest使开发人员可以访问他们自己的API和Superagent库提供的低级API。

▍优势


  • 它具有便捷的API。
  • 简化了HTTP测试的构造。
  • 它可以与库一起用于测试Chai.jsMocha等项目。

▍弱点


  • 在浏览器中不起作用。

总结


在本文中,我们研究了几种流行的HTTP处理工具,这些工具对于创建使用浏览器技术和Node.js平台的应用程序的JS开发人员很有用。 为项目的HTTP子系统选择基础时,建议您首先尝试一些看起来合适的工具,然后做出最终决定。

亲爱的读者们! 您使用什么HTTP库?

Source: https://habr.com/ru/post/zh-CN432634/


All Articles