Use HTTP Files Instead of Postman (or other visual tool)

Here are several factors why we choose to use HTTP files:

1. Simplicity and Lightweight Nature

  • HTTP Files: They are simple text files that can define HTTP requests and can be
    version-controlled easily with your source code. You don’t need to install or run additional
    software; they can be managed and executed using command-line tools or simple scripts.
  • Postman: It is a feature-rich application, which can sometimes be overkill for
    simple requests or scenarios.

Sample HTTP file:

GET https://localhost:7220/weatherforecast
Cache-Control: max-age=604800
Age: 100

###

POST https://localhost:7220/weatherforecast
Content-Type: application/json
Accept-Language: en-US,en;q=0.5

{
    "date": "2023-05-10",
    "temperatureC": 30,
    "summary": "Warm"
}

###

2. Automation and Scripting

  • HTTP Files: They can be integrated into automated scripts or testing
    frameworks. For instance, they can be used in conjunction with tools like curl,
    httpie, or even custom scripts for running automated tests or deployments.
  • Postman: While Postman does offer automation capabilities through its
    command-line tool newman and the Postman API, setting up and managing these can be
    more complex than simple scripts.

3. Version Control and Collaboration

  • HTTP Files: Since they are plain text, HTTP files can be easily tracked in
    version control systems (like Git), allowing for better tracking of changes and collaboration
    among developers.
  • Postman: Postman collections can also be exported and versioned, but it might
    not be as straightforward as working with plain text files. Also sharing collection with more than 3 collaborators requires a paid subscription.

4. Environment and Tooling

  • HTTP Files: They can be edited with any text editor and do not require a
    specific environment or tool, making them very flexible and lightweight. They are available for VS Code using an extension (Rest Client or httpYac – Rest Client)
    and recently added to Visual Studio and JetBrains Rider.
  • Postman: Requires the Postman application or newman to execute
    collections. It’s a heavier tool with a specific environment that might not be suitable for all
    setups.

5. Learning and Transparency

  • HTTP Files: Working directly with HTTP files can provide a better understanding
    of the underlying HTTP protocol and how requests are constructed and sent.
  • Postman: It abstracts away many of the details, which can be both a pro (for
    ease of use) and a con (for learning purposes).

6. Customization and Flexibility

  • HTTP Files: Can be highly customized to fit specific needs, and you can use any
    scripting language or tool to manipulate them.
  • Postman: While powerful, its scripting capabilities (via the Postman scripting
    environment) are limited to JavaScript and are bound by the capabilities provided by Postman.

7. Integration with Other Tools

  • HTTP Files: Can easily be integrated with other command-line tools, CI/CD
    pipelines, and testing frameworks.
  • Postman: Offers integrations but might require additional steps or tools like
    newman for CLI usage.

Conclusion

The choice between using HTTP files and Postman largely depends on the specific use case, team
preferences, and the complexity of the tasks at hand. HTTP files provide a lightweight, transparent,
and scriptable option, while Postman offers a user-friendly interface with powerful features for
more complex workflows.

More on HTTP files in Visual Studio .