Installation och klient
dotnet add package DiMu.Net
using DiMu;
using var client = new DimuClient();
using var response = await client.SearchAsync(
new SearchRequest { Query = "hästar i snö", Limit = 10 },
cancellationToken);
response.EnsureSuccessStatusCode();
var json = await response.Content.ReadAsStringAsync(cancellationToken);
DimuClient läser först DimuClientOptions.ApiKey, därefter DIMU_API_KEY och använder annars demo med en varning. Använd en egen nyckel i produktion.
För dependency injection skickas en återanvänd HttpClient in. Klienten stänger aldrig en externt ägd HttpClient.
var options = new DimuClientOptions { ApiKey = configuration["DIMU_API_KEY"] };
var client = new DimuClient(httpClient, options);
Timeout är 30 sekunder som standard. SearchAsync och GetArtifactAsync returnerar upstream-svaret direkt. Anroparen kan läsa .Content som bytes, text, stream eller JSON. GetCollectionsAsync är undantaget: den tolkar DigitaltMuseums ägarlista och returnerar Collection-objekt.
Artefakter hämtas alltid som simple_json:
using var response = await client.GetArtifactAsync(uniqueId, cancellationToken);