This is a .NET SDK for the COVID-19 API, as published by Public Health England on Coronavirus (COVID-19) in the UK.
The API supplies the latest data for the COVID-19 outbreak in the United Kingdom.
The endpoint for the data provided using this SDK is:
https://api.coronavirus.data.gov.uk/v1/data
The SDK is also available for Python, R, JavaScript and Elixir.
Using this SDK will bypass the pagination process. You will always download the entire
dataset unless the latest_by
argument is defined.
.NET Core is required to use this SDK.
To install visit here and download the correct installation for your OS:
We would like to extract the number of new cases England using the API.
We start off by adding the project via NuGet:
dotnet add package UKCovid19
In our application or library we can then instantiate the API by providing filters and a structure: NOTE: The structure key/value object must use one of the valid metrics for the value however the key can match to any property you have on a POCO.
public class CovidData
{
public DateTime MyDate { get; set; }
public int NewCases { get; set; }
}
var cov19api = new Cov19Api(new UkCovid19Props
{
FiltersType = new Dictionary<string, string> { { "areaType", "nation" }, { "areaName", "England" } },
StructureType = new Dictionary<string, string> { { "MyDate", "date" }, { "newCases", "newCasesByPublishDate" } },
LatestBy = "newCasesByPublishDate"
});
var data = await cov19api.Get<CovidData>();
foreach (var covidData in data.Data)
{
Console.WriteLine($"Date:{covidData.MyDate} No. of New Cases:{covidData.NewCases}");
}
To get the latest data by a specific metric, you can supply the LatestBy
argument to the API:
var cov19api = new Cov19Api(new UkCovid19Props
{
FiltersType = new Dictionary<string, string> { { "areaType", "nation" }, { "areaName", "England" } },
StructureType = new Dictionary<string, string> { { "MyDate", "date" }, { "newCases", "newCasesByPublishDate" } },
LatestBy = "newCasesByPublishDate"
});
Date:08/17/2020 00:00:00 No. of New Cases:634
You may also use cov19api.GetXml()
to return the data into a .NET XDocument
object.
To see the timestamp for the last update, run:
var dateTimeOffset = await cov19api.LastUpdate();
Console.WriteLine(dateTimeOffset.ToString("O"));
2020-07-28T15:34:31.000Z
To get an underlying picture of the API you can use the cov19api.Head()
method which will return all the headers from the underlying API
which will return IEnumerable<KeyValuePair<string, IEnumerable<string>>>
.
If you prefer OpenAPI, you can use cov19api.Options()
which will return a OpenApiDocument
object that can be inspected.
Developed by Jonathan Channon and maintained by Public Health England.
Copyright (c) 2020, Public Health England.