Er det muligt at få en af jer eksperter til at prøve at køre følgende kode:
using GraphQL;
using GraphQL.Client.Http;
using GraphQL.Client.Serializer.Newtonsoft;
using Newtonsoft.Json;
using System;
using System.Diagnostics;
using System.Net;
using System.Net.Http;
using System.Threading.Tasks;
namespace CvrGraphQLDemo
{
// ---------- MODELS ----------
public class CVREnhedResponse
{
public CVREnhedContainer CVREnhed { get; set; }
}
public class CVREnhedContainer
{
public List<CVREnhedNode> nodes { get; set; }
}
public class CVREnhedNode
{
public string cvrNummer { get; set; }
public string navn { get; set; }
public string email { get; set; }
public int? antalMedarbejdere { get; set; }
public Adresse adresse { get; set; }
}
public class Adresse
{
public string vejnavn { get; set; }
public string husnummer { get; set; }
public string postnummer { get; set; }
public string postdistrikt { get; set; }
}
// ---------- CLIENT ----------
public class CvrGraphQlClient
{
private readonly GraphQLHttpClient _client;
private const string QueryHentEnhed = @"
query HentEnhed($cvr: String!) {
CVREnhed(where: { cvrNummer: { eq: $cvr } }) {
nodes {
cvrNummer
navn
email
antalMedarbejdere
adresse {
vejnavn
husnummer
postnummer
postdistrikt
}
}
}
}";
public CvrGraphQlClient(string apiKey)
{
var http = new HttpClient
{
Timeout = TimeSpan.FromSeconds(30)
};
// Datafordeler kræver API-key som query parameter – korrekt
_client = new GraphQLHttpClient(
new GraphQLHttpClientOptions
{
EndPoint = new Uri($"
https://graphql.datafordeler.dk/CVR/v1?apiKey={apiKey}")
},
new NewtonsoftJsonSerializer(),
http
);
}
public async Task<CVREnhedResponse> HentEnhedAsync(string cvr)
{
var request = new GraphQLRequest
{
Query = QueryHentEnhed,
Variables = new { cvr = cvr }
};
try
{
Debug.WriteLine($"DEBUG: Sender forespørgsel mod Datafordeler for CVR={cvr}");
var response = await _client.SendQueryAsync<CVREnhedResponse>(request);
// GraphQL-fejl (fx invalid query)
if (response.Errors != null && response.Errors.Length > 0)
{
foreach (var err in response.Errors)
{
Debug.WriteLine("GRAPHQL ERROR: " + err.Message);
}
throw new Exception("GraphQL fejl modtaget fra Datafordeler.");
}
Debug.WriteLine("DEBUG: Response OK");
Debug.WriteLine("DEBUG: Data: " +
JsonConvert.SerializeObject(response.Data, Formatting.Indented));
return response.Data;
}
catch (GraphQLHttpRequestException ex)
{
Debug.WriteLine("HTTP FEJL i GraphQL kald: " + ex.Message);
throw;
}
catch (Exception ex)
{
Debug.WriteLine("Uventet fejl i GraphQL kald: " + ex.Message);
throw;
}
}
}
// ---------- PROGRAM ----------
class Program
{
static async Task Main()
{
// 🔑 SKIFT TIL DIN API KEY
var client = new CvrGraphQlClient("APIKEY");
var result = client.HentEnhedAsync("12345678");
}
}
}
APIKEY er erstattet med "APIKEY", men ellers er det et kørende eksempel. Men jeg kunne godt tænke mig at finde ud af, om I også oplever at programmet bare terminere uden fejl og exception ved følgende linje: var response = await _client.SendQueryAsync<CVREnhedResponse>(request);
Jeg håber, at en har tid og lyst til at hjælpe mig :)