HTTP Communication and APIs
Understand how to work with HTTP within the context of a Blazor app.
Communication between a Blazor client app and an API is typically done via HTTP using JSON. Using GraphQL, Protobuf or other technologies is possible as well, but let's focus on working with a JSON-based API in this tutorial.
For the purposes of HTTP Communication in Blazor apps, APIs accept and return JSON (mostly, though it's possible to use XML or a custom format). A nice feature of .NET and Blazor is that they contain classes that help us send and receive data between clients and APIs.
Use the resources from
System.Text.Json or go with a 3rd party libraries such as Json.Net to work with JSON, so you don't have to parse it yourself.
Blazor apps use
System.Net.Http.HttpClient to send and receive requests and responses from APIs. However, it’s necessary to first register
HttpClient with the runtime. We do that by appending the service to the
WebHostBuilder using a call to
AddHttpClient. This lets the runtime know which classes call to which endpoints.
You may register HTTP clients and services in
Program.cs to access any HTTP API.
If you're accessing an API through a service layer that uses
HttpClient in your Blazor app, you can specifically register the service:
Rider is an excellent tool for working with APIs and JSON data. Open the Endpoints tool window through the View | Tool Windows | Endpoints menu option. From there you can navigate to the code behind the endpoint and make, manage, and save calls to endpoints. The Endpoints Tool Window gives a great look at the various endpoints in your solution.