Ich denke darüber nach, eine API zu erstellen, damit ich Kollegen einige räumliche Datensätze zur Analyse zur Verfügung stellen kann.
Ein Teil meiner Arbeit bestand darin, Daten zu analysieren und vorzubereiten, die dann von anderen zur weiteren Analyse verwendet werden können. Die Arbeit (obwohl sie derzeit kleiner und weniger anspruchsvoll ist) ähnelt Walkscore , beinhaltet jedoch einige enorme Datensätze. Es gibt zunehmende Einschränkungen, wie ich die Originaldaten freigeben kann, aber meine abgeleiteten Arbeiten können gemeinsam genutzt werden. Ich habe darüber nachgedacht, wie ich die Ergebnisse meiner Analyse am besten teilen kann (außerhalb der Weitergabe großer Datenmengen), und dachte, dass eine API ein Ansatz wäre. Woran sollte ich beim Erstellen einer API denken? Gibt es Designspezifikationen, denen ich folgen kann?
Meine Vision klingt etwas grandioser als derzeit, aber ich denke, es wäre ein nützlicher Rahmen, den man zu Beginn dieser Arbeit berücksichtigen sollte.
Antworten:
Mit API meinen Sie vermutlich eine Art Netzwerkzugriff auf Ihre Daten über eine HTTP-POST / GET-Affäre wie die Google Maps-API. Werden es Raster- oder Vektordaten sein? Ich werde für die Zwecke dieser Diskussion einen Vektor annehmen. Dies ist eigentlich nur ein Kommunikationsprotokoll und keine Anwendungsprogrammierschnittstelle.
Sie müssen nichts von Grund auf neu entwerfen, da es viele Standardprotokolle gibt (anstatt APIs an sich habe ich ein bisschen Probleme damit, Dinge APIs aufzurufen, wenn sie nicht sind, aber ich werde Sie nicht langweilen! ). Wenn Sie nur schreibgeschützte Vektordaten für Ihre Clients bereitstellen möchten , benötigen Sie lediglich einen WFS-Server , der sich vor Ihrer Datenbank befindet. Ich habe in der Vergangenheit GeoServer verwendet , aber ich bevorzuge die Leichtigkeit von TinyOWS . Beide erledigen den gleichen Job: Konfigurieren Sie sie für den Zugriff auf Ihre Datenbank mit abgeleiteten Daten und legen Sie fest, dass sie als Teil eines Webservers ausgeführt werden ( Apache ist üblich, aber ich bevorzuge lighttpd) und da hast du es. QGIS kann Daten von einem WFS-Server laden, und Arc zweifellos auch. OpenLayers verfügt auch über WFS-Rendering-Funktionen für eine browserbasierte Lösung. Auf der unteren Ebene kann GDAL verwendet werden, um die Daten von WFS in jedes von OGR unterstützte Vektorformat zu konvertieren.
Wenn Sie Bearbeitungsfunktionen wünschen, unterstützen sowohl GeoServer als auch TinyOWS WFS-T, sodass Ihre Benutzer ihre Analysen wieder auf Ihren Server hochladen können.
Das Erstellen einer eigenen API macht den Zweck, diese Standards zu haben, in erster Linie zunichte, es sei denn, Sie sind unglaublich spezialisiert und haben spezifische Anforderungen wie Leistung und ähm ... das ist ungefähr alles, was ich mir vorstellen kann. Diesen Weg ohne eine angemessene Menge an Ressourcen zu gehen, ist eine schwierige - wenn auch nicht unmögliche - Aufgabe.
quelle
Sie haben mehrere Möglichkeiten; Die Auswahl hängt von Ihrem Datenmodell, der Art der zu liefernden Daten, dem beabsichtigten Nutzungsmodell, der Zugriffskontrolle sowie der Bereitstellungsplattform (Web, HTML, Java Server, IIS, statischer Datensatz) ab.
Viel Glück, eine API ist kein kleines Unterfangen, da Sie die Freigabemethode und -zyklen, Fehlerbehebungen und Tests berücksichtigen müssen. All dies trägt zur Benutzerfreundlichkeit bei. Ich sage nicht, tu es nicht, es wäre eine großartige Erfahrung. Der Aufbau auf einem vorhandenen Produkt könnte jedoch auch eine positive Erfahrung sein.
quelle