Estoy considerando intentar crear una API para poder poner a disposición de mis colegas algunos conjuntos de datos espaciales para su análisis.
Parte de mi trabajo ha sido analizar y preparar datos que luego pueden ser utilizados por otros para su posterior análisis. El trabajo (aunque actualmente en una escala más pequeña y menos sofisticado) es similar al walkcore pero involucra algunos conjuntos de datos enormes. Existen restricciones cada vez mayores sobre cómo puedo compartir los datos originales, pero mi trabajo derivado es compartible. He estado pensando sobre la mejor manera de compartir los resultados de mi análisis (además de transmitir grandes conjuntos de datos) y pensé que una API sería un enfoque. ¿En qué tipo de cosas debería pensar al construir una API? ¿Hay especificaciones de diseño que pueda seguir?
Mi visión suena un poco más grandiosa de lo que es actualmente, pero creo que sería un marco útil para considerar al principio de este trabajo.
Respuestas:
Por API, supongo que se refiere a algún tipo de acceso de red a sus datos a través de un asunto de tipo HTTP POST / GET, como la API de Google Maps. ¿Serán datos ráster o vectoriales? Asumiré vector para los propósitos de esta discusión. Esto es realmente solo un protocolo de comunicación en lugar de una interfaz de programación de aplicaciones.
No necesitará diseñar nada desde cero, ya que hay muchos protocolos estándar (en lugar de API en sí, me molesta un poco llamar a las API de cosas cuando no lo son, ¡pero no lo aburriré! ) Si solo está interesado en servir datos vectoriales de solo lectura a sus clientes, solo necesita un servidor WFS que se encuentre frente a su base de datos. He usado GeoServer en el pasado, pero prefiero la ligereza de TinyOWS . Ambos hacen el mismo trabajo: configúrelos para acceder a su base de datos de datos derivados, configúrelos como parte de un servidor web ( Apache es común, pero prefiero lighttpd), Y ahí lo tienes. QGIS puede cargar datos desde un servidor WFS, y sin duda también Arc. OpenLayers también tiene capacidades de representación WFS para una solución basada en navegador. En el nivel inferior, GDAL se puede usar para convertir los datos de WFS a cualquier formato vectorial compatible con OGR.
Si desea capacidades de edición, tanto GeoServer como TinyOWS admiten WFS-T, lo que permite a sus usuarios cargar sus análisis nuevamente en su servidor.
La creación de su propia API realmente anula el propósito de tener estos estándares en primer lugar, a menos que sea increíblemente especializado y tenga requisitos específicos como el rendimiento, y er ... eso es todo lo que puedo pensar. Seguir esta ruta, sin una cantidad razonable de recursos, es una tarea difícil, aunque no imposible.
fuente
Tienes unas cuantas opciones; la elección de la cual dependerá de su modelo de datos, el tipo de datos a servir, el modelo de uso previsto, el control de acceso, así como la plataforma de entrega (Web, HTML, Servidor Java, IIS, conjunto de datos estáticos).
Buena suerte, una API no es una tarea pequeña, ya que debe considerar el método de lanzamiento y los ciclos, las correcciones de errores y las pruebas. Todo esto contribuye a la usabilidad. No digo que no lo hagas, sería una gran experiencia. Aunque construir sobre un producto existente también podría ser una experiencia positiva.
fuente