Saltar al contenido principal

CKAN: Desarollo

Arquitectura del código de CKAN

La arquitectura de código de CKAN está diseñada con ciertos estándares de codificación en mente para mantener la consistencia con su diseño y arquitectura previstos.

Arquitectura del código CKAN

tip

Más información en: CKAN Code Architecture

Blueprints

CKAN se basa en Flask y utiliza Blueprints. Los blueprints predeterminados se definen junto con las vistas en ckan.views y se extienden con la interfaz de plugin ckan.plugins.interfaces.IBlueprint.

Vistas (Views)

Las vistas procesan las solicitudes leyendo y actualizando datos con funciones de acción y devuelven una respuesta renderizando plantillas Jinja2. Las vistas de CKAN se definen en ckan.views y las plantillas en ckan.templates.

Funciones de ayuda de plantilla (Helpers)

Las funciones de ayuda de plantilla se utilizan para el código que se reutiliza con frecuencia o el código que es demasiado complicado para incluirse en las plantillas mismas. Nunca deben realizar consultas costosas o actualizar datos.

Funciones de acción (Actions)

Cuando algún código quiere obtener, crear, actualizar o eliminar un objeto del modelo de CKAN, debe hacerlo llamando a una función del paquete ckan.logic.action, y no accediendo directamente a ckan.model.

Lógica (Logic)

La lógica incluye funciones de acción, funciones de autenticación, tareas en segundo plano y lógica de negocio. Las funciones de acción tienen una interfaz uniforme que acepta un diccionario de listas de cadenas simples, diccionarios o archivos. Devuelven diccionarios simples o lanzan una de un pequeño número de excepciones.

Modelos (Models)

Idealmente, SQLAlchemy solo debe usarse dentro de ckan.model y no desde otros paquetes como ckan.logic.

Deprecación (Deprecated)

Cualquier cosa que pueda ser utilizada por extensiones, temas o clientes de API necesita mantener la compatibilidad hacia atrás en el sitio de llamada. Para deprecar una función, use el decorador ckan.lib.maintain.deprecated y agregue "deprecated" a la cadena de documentación de la función.

Guías de contribución

CKAN es un software libre de código abierto y se agradecen las contribuciones, ya sean informes de errores, código fuente, documentación o traducciones. Las siguientes secciones te guiarán a través de nuestros procesos para hacer diferentes tipos de contribuciones a CKAN: