Hämta finansiell data i C# och .NET Core
En utvecklarguide till hur du konsumerar finansiell rapportdata från BörsAPI i C# och .NET med HttpClient och starkt typade klasser.
För utvecklare i Microsoft-ekosystemet är C# och .NET Core kraftfulla verktyg för att bygga robusta handelssystem, kalkylatorer eller interna databaser. Här går vi igenom hur du sätter upp en anslutning till BörsAPI.se i C# för att hämta finansiell data i JSON-format.
Steg 1: Definiera de finansiella modellerna
För att få full nytta av C#:s typsäkerhet skapar vi klasser som matchar BörsAPI:s JSON-struktur:
using System;
using System.Text.Json.Serialization;
public class Company
{
[JsonPropertyName("id")]
public string Id { get; set; }
[JsonPropertyName("ticker")]
public string Ticker { get; set; }
[JsonPropertyName("name")]
public string Name { get; set; }
[JsonPropertyName("sector")]
public string Sector { get; set; }
[JsonPropertyName("market")]
public string Market { get; set; }
}
public class FinancialReport
{
[JsonPropertyName("period")]
public string Period { get; set; }
[JsonPropertyName("report_type")]
public string ReportType { get; set; }
[JsonPropertyName("revenue")]
public long? Revenue { get; set; }
[JsonPropertyName("operating_income")]
public long? OperatingIncome { get; set; }
[JsonPropertyName("net_income")]
public long? NetIncome { get; set; }
[JsonPropertyName("total_assets")]
public long? TotalAssets { get; set; }
}Steg 2: Skapa API-klienten
Vi använder HttpClient för att skicka anropet och lägger till vår API-nyckel som ett Authorization header-attribut:
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text.Json;
using System.Threading.Tasks;
using System.Collections.Generic;
public class BorsApiClient
{
private readonly HttpClient _httpClient;
private const string BaseUrl = "https://borsapi.se/api/v1";
public BorsApiClient(string apiKey)
{
_httpClient = new HttpClient();
_httpClient.DefaultRequestHeaders.Authorization =
new AuthenticationHeaderValue("Bearer", apiKey);
_httpClient.DefaultRequestHeaders.Accept.Add(
new MediaTypeWithQualityHeaderValue("application/json"));
}
public async Task<List<Company>> GetCompaniesAsync(int limit = 10)
{
var response = await _httpClient.GetAsync($"${BaseUrl}/companies?limit=${limit}");
response.EnsureSuccessStatusCode();
var json = await response.Content.ReadAsStringAsync();
return JsonSerializer.Deserialize<List<Company>>(json);
}
public async Task<List<FinancialReport>> GetReportsAsync(string isin)
{
var response = await _httpClient.GetAsync($"${BaseUrl}/companies/${isin}/reports");
response.EnsureSuccessStatusCode();
var json = await response.Content.ReadAsStringAsync();
return JsonSerializer.Deserialize<List<FinancialReport>>(json);
}
}Steg 3: Hämta data i programmet
Här är ett enkelt exempel på hur du anropar klasserna i din Program.cs:
class Program
{
static async Task Main(string[] args)
{
string apiKey = "fd_din_api_nyckel_här";
var client = new BorsApiClient(apiKey);
// Hämta bolag
var companies = await client.GetCompaniesAsync(5);
foreach (var company in companies)
{
System.Console.WriteLine($"Bolag: {company.Name} ({company.Ticker})");
// Hämta rapporter för det första bolaget
var reports = await client.GetReportsAsync(company.Id);
if (reports.Count > 0)
{
System.Console.WriteLine($" Senaste perioden: {reports[0].Period}");
System.Console.WriteLine($" Omsättning: {reports[0].Revenue:N0} SEK");
}
}
}
}Kom igång med BörsAPI
För att använda dessa mallar och skript behöver du ett personligt konto och en API-nyckel. Det är helt kostnadsfritt under vår beta-period.
Registrera dig på några sekunder via registreringssidan.
Gå till din Dashboard och klicka på "Generera API-nyckel".
Ersätt placeholder-nyckeln i källkoden eller kalkylarket med din personliga nyckel.