Markus Möller: API nur mit API-Key zur Verfügung stellen oder lieber öffentlich

Hallo zusammen,

für ein neues Internet-Portal möchte ich gerne eine Programmierschnittstelle (API) zur Verfügung stellen. Die Gründe sind leicht zu erraten: Ich erhoffe mir eine weiter Verbreitung und coole Mashups.

Nun stelle ich mir die Frage, ob ich dafür den Weg über einen API-Key (wie beispielsweise bei Google) gehen soll oder ganz darauf verzichten sollte.

Der Key hätte den Vorteil, dass ich Nutzer bei Missbrauch leicht sperren könnte. Wenn man ihn wie bei Google-Maps auch noch an die Domain bindet (was ich persönlich nicht ganz so gut finde), weiß ich sogar, wo die API eingesetzt wird. Außerdem habe ich einen genauen Überblick über die Verbreitung.

Alle diese Vorteile habe ich nicht, wenn ich auf eine Registrierung+Key verzichte. Dafür ist die Einstiegshürde deutlich geringer, da man sich nicht irgendwo anmelden muss und dafür gleich loslegen kann. Bürokratie gleich null. Weiterhin würde ich mir selbst die Verwaltung der Keys (Anmeldung, Speicherung, Abgleich bei jeder Abfrage etc) sparen.

Man sieht, dass beide Varianten Vor- und Nachteile haben:

Mit API-Key:

  • Genaue Kenntniss über Verbreitung
  • Nutzer müssen vor Verwendung den AGBs zugestimmt haben
  • Leichte Sperrung bei Missbrauch
  • Reduzierung auf x Anfragen pro Tag möglich
  • ggf. Addressenpool, den man per Newsletter über API-Änderungen informieren kann.
  • Hohe Hürde bei Verwendung
  • Verwaltungsaufwand
  • Umständlich
  • Langsamere API, da immer Abgleich des Schlüssels notwendig ist

Wie ist eure Meinung? Überwiegen die Vor- oder Nachteile? Gibt es vielleicht noch andere Dinge, die ich beachten sollte?

Was haltet ihr von der Idee, einen API-Key zu verlangen, aber einen sich wöchentlich ändernden Test-Key öffentlich zu machen? So kann jeder testweiße loslegen und muss sich erst später registrieren.

Ich bin auf eure Meinung gespannt.

Gruß
Markus

  1. Hi,

    Was haltet ihr von der Idee, einen API-Key zu verlangen, aber einen sich wöchentlich ändernden Test-Key öffentlich zu machen? So kann jeder testweiße loslegen und muss sich erst später registrieren.

    Das wollte ich dir schon vorschlagen, bevor ich bis zu der Stelle gelesen hatte :-)

    Damit kann ich auch schnell mal ein Beispielscript aus anderer Quelle testen etc., ohne mich erst registieren zu müssen.

    Den Vorteil, den Zugriff bei missbräuchlicher Nutzung auf Nutzerebene verweigern zu können, würde ich mir als Betreiber aber durchaus sichern wollen.

    Vielleicht kann man das auch noch mit einem Zwischenschritt verfeinern - Nutzung ohne API-Key auf eine bestimmte Anzahl Zugriffe/Interval je IP-Adresse beschränkt. (Sicher, das macht es auch langsamer. Aber man könnte diese Prüfung ja nur dann machen, wenn kein API-Key mitgeschickt wird. Dann hätte die Variante mit API-Key gleich noch einen Vorteil für den Nutzer ;-)

    MfG ChrisB

    --
    Light travels faster than sound - that's why most people appear bright until you hear them speak.