Redaktion og opdatering af indholdet på denstoredanske.dk er indstillet pr. 24. august 2017. Artikler og andet indhold er tilgængeligt i den form, der var gældende ved redaktionens afslutning.

  • Artiklens indhold er godkendt af redaktionen

Erfaringer med API

Oprindelig forfatter Cliff Hansen Seneste forfatter Redaktionen

Her kan du skrive om netop dine erfaringer med brugen af Den Store Danskes API. Du skal være oprettet som bruger for at kunne bruge Den Store Danskes API. Klik her for at oprette dig med det samme.

Brugen af APIet

Jeg har nu prøvet at arbejde med APIet, og umiddelbart var det meget let at skrive en klient i .NET med brug af VisualStudio 2008, og at få returneret søgeresultater.

Det eneste jeg gjorde var at tilføje en Service Reference, kalde den GyldendalLeksikonAPIServiceReference hvorefter jeg kunne kalde servicen på følgende måde (C#). Bemærk at Username ikke er din mail-adresse, men dit "rigtige" navn.

Annonce

string ErrorMessage;
string Username = "";
string Password = "";
int ArticleID = 150000;

GyldendalLeksikonAPIServiceReference.GyldendalLeksikonAPISoapClient leksikonAPISoap = new GyldendalLeksikonAPIServiceReference.GyldendalLeksikonAPISoapClient();

GyldendalLeksikonAPIServiceReference.ArticleFull articleFull = leksikonAPISoap.GetArticle(Username, Password, ArticleID, false, out ErrorMessage);

Observationer

For samtlige de artikler jeg hentede med GetArticle (150000, 151491 og 151492), har jeg observeret et par ting.

For det første får jeg altid returneret teksten "Ingen overskrifter" både før og efter selve artikelteksten i feltet PageContent.

For det andet optræder der altid denne fejlmeddelelse, igen i PageContent feltet.

/p/span, function 'http://127.0.0.1/extensions/gyldendal.ext.php' failed with response:

Error: ConnectFailure

En anden ting jeg har observeret er at samtlige henvisninger (URI/URLer) optræder på denne måde: http://*:8081

Dette gælder også henvisninger til billeder

Generelle kommentarer

Jeg har et par generelle kommentarer til designet af APIet. Jeg undrer mig sådan set ikke over at der skal sendes brugernavn og password med i kaldet, selv om det alligevel er svært at se formålet da der ikke er tale om at man kan opdatere artiklerne via. APIet, men det største problem er at man udveksler brugerdata på en "usikker" måde. Login/password bruges sikkert til at forhindre misbrug.

Det er ihvertfald problematisk at brugernavn og password sendes i klar tekst (ukrypteret). Dette kan undgås på flere måder, f.eks. kunne man have gjort som Google og andre, der tildeler applikationsudviklerene bestemt nøgler.

Der er også ved at blive etableret standarder for hvordan man anvender APIer sikkert, uden direkte at sende brugerdata, f.eks. OAuth, men OAuth er ikke just let at anvende og/eller implementere, og det er sikkert grunden til at det er fravalgt.