【问题标题】:Is there some kind of http validator?有某种http验证器吗?
【发布时间】:2017-03-27 08:51:41
【问题描述】:

我正在 node 中编写一个 web 服务,并使用 Postman 对其进行测试。我花了很长时间寻找错误。当我终于找到它时,原来是一个简单的错误格式化响应体,即json。

  1. 如果我在响应正文中去掉最后一个大括号,Postman 会等待两分钟,然后报告它已收到所有内容,就可以了。

  2. 如果我在 json 的最后一个值中省略了结束引号,邮递员说服务器没有响应,也许我应该检查我的安全证书。

我宁愿邮递员说“嘿,伙计,你漏掉了一句话!”

如果有一些验证服务可以联系我?还是 Postman 中的插件?

【问题讨论】:

  • 1) 应该不可能从这样的服务生成格式错误的 JSON,因为除了使用 JSON 序列化器之外,您永远不应该以任何方式生成它 2) 当您要求 HTTP 验证器时你真正想要的是一个 JSON 验证器

标签: json node.js http postman


【解决方案1】:

我为此使用Fiddler。它非常擅长识别(弹出错误消息)问题和 HTTP 协议的错误实现。在它运行的情况下浏览网页,在几分钟之内,您无疑会遇到一个实施不佳的服务器。

Postman 无法处理这些情况,因为它与浏览器框架的不良行为隔离。

这不是你的问题。

当我终于找到它时,原来是一个简单的错误格式化响应正文,即json。

这与 HTTP 完全无关。 HTTP 不知道也不关心您的请求/响应主体是什么。

您面临的问题是您的 API 端点可能会返回它想要的任何东西。您需要一个自定义解决方案来解决您的问题,因为在这种情况下没有标准的 API 服务器。

大多数人会运行单元测试来触及服务的常见端点,以确保它们正常运行。

我还应该指出,如果您操作正确,那么您几乎不可能破坏 JSON 响应。听起来您正在手动序列化 JSON……永远不要那样做,我们为此目的提供 JSON 序列化程序。发送一个对象,让它为您构建 JSON 输出。否则,您将在此类问题上浪费大量时间。

【讨论】:

    【解决方案2】:

    我发现 Paw 有效 (https://paw.cloud/)。到目前为止,我还没有付钱。

    Postman 说“检查你的安全证书”,Paw 说“我们期待 376 个字节,但你只给我们发送了 312 个字节。”

    大大减少了我解决问题的时间!

    【讨论】:

      【解决方案3】:

      这里有一些validation javascript库,你可以使用:

      • Validator 提供了一种验证 javascript 对象的声明方式。
      • Express-validator 充当 node-validator 的 express.js 中间件。

      同时,Postman 得到了API testing and Collection Runner 可以帮助您解决此问题;您可以为每个请求写一些pre-request scripttest script

      此外,他们还获得了 Newman,它是一个命令行收集运行程序。它允许您直接从命令行轻松运行和测试 Postman 集合。它在构建时考虑了可扩展性,因此您可以轻松地将其与您的持续集成服务器和构建系统集成。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2018-01-18
        • 2020-09-22
        • 2016-04-23
        • 1970-01-01
        • 1970-01-01
        • 2020-02-08
        • 1970-01-01
        相关资源
        最近更新 更多