Skip to main content

HTTP-REPL Tool to test WEB API in ASP.NET Core 2.2

Today there are no tools built into Visual Studio to test WEB API. Using browsers, one can only test http GET requests. You need to use third-party tools like Postman, SoapUI, Fiddler or Swagger to perform a complete testing of the WEB API. In ASP.NET Core 2.2, a CLI based new dotnet core global tool named “http-repl” is introduced to interact with API endpoints. It’s a CLI based tool which can list down all the routes and execute all HTTP verbs. In this post, let’s find out how to use HTTP-REPL tool to test WEB API in ASP.NET Core 2.2.

HTTP-REPL Tool to test WEB API in ASP.NET Core 2.2

The “http-repl” is a dotnet core global tool and to install this tool, run the following command. At the time of writing this post, the http-repl tool is in preview stage
and available for download at dotnet.myget.org

dotnet tool install -g dotnet-httprepl --version 2.2.0-* --add-source https://dotnet.myget.org/F/dotnet-core/api/v3/index.json

Once installed, you can verify the installation using the following command.

dotnet tool list -g

HTTP API REPL Tool

Now the tool is installed, let’s see how we can test the WEB API. For this tool to work properly, the prerequisite here is that your services will have Swagger/OpenAPI available that describes the service. For this post, I am using the ASP.NET Core WEB API sample code used in this post, which have swagger enabled.

We need to add this tool to web browser list so that we can browse the API with this tool. To do that, follow the steps given in the below image.

Add to Visual Studio HTTP API REPL Tool

The location of HTTP-REPL tool executable is "C:\Users\<username>\.dotnet\tools". Once added, you can verify it in the browser list.

HTTP API REPL Tool Added to Visual Studio

Run the app (make sure HTTP REPL is selected in browser list) and you should see a command prompt window. As mentioned earlier, it’s a CLI based experience so you can use commands like dir, ls, cd and cls. Below is an example run where I start-up a Web API.

HTTP API REPL Tool to test API in ASP.NET Core 2.2_1

You can use all the HTTP Verbs, and when using the POST verb, you should set a default text editor to supply the JSON. You can set Visual Studio Code as default text editor using the following command.

pref set editor.command.default "C:\Program Files (x86)\Microsoft VS Code\Code.exe"

Once the default editor is set, and you fire POST verb, it will launch the editor with the JSON written for you. See below GIF.

HTTP-REPL Tool to test WEB API in ASP.NET Core 2.2

You can also navigate to the Swagger UI from the command prompt via executing ui command. Like,

HTTP-REPL Tool to test WEB API in ASP.NET Core 2.2

Similarly, you can also execute the DELETE and PUT. In case of PUT command, you should use following syntax and in the default code editor, supply the updated data.

> delete 2 //This would delete the record with id 2.
>
> put 2010 -h "Content-Type: application/json"

When you fire PUT command, the behavior is same as the POST verb. The text editor will open with the JSON written for you, just supply the updated value to execute PUT command.

Pros and Cons

Pros

  • Helps in debugging WEB API
  • Fast and quickly switch between API endpoints
  • Descriptive error response shown

Cons:

  • Dependency on Swagger/Open API specification
  • Not as informative as UI tools

After playing with this for a while, I strongly feel it’s command line version of the Swagger UI and it would be very handy when there are many API endpoints. You can easily navigate or switch between the APIs and execute it.

Summary

Nowadays, many tools are going towards CLI experience and http-repl is another addition to the list. This tool allows you to test WEB API endpoints supporting all HTTP verbs. You can quickly navigate between the APIs and test them. I am not sure about the future of this tool and whether the community and developers will adopt this new tool as it’s a CLI version of Swagger.

Thank you for reading. Keep visiting this blog and share this in your network. Please put your thoughts and feedback in the comments section.

PS: At the time of writing this post, The http-repl tool is still in preview stage and the experience may change.

PS: If you found this content valuable and want to return the favour, then Buy Me A Coffee

3 thoughts to “HTTP-REPL Tool to test WEB API in ASP.NET Core 2.2”

Leave a Reply

Your email address will not be published. Required fields are marked *