# Altium DBLib API


API REST que permite gestionar librerías de componentes DBLib de Altium.

<!--more-->

# Cómo surge

Tras retomar proyectos en los que necesitaba construir ciertas partes hardware
(proyectos que iré publicando en este blog) fui observando que cada vez me
resultaba más trabajoso mantener mis antiguas librerías de componentes, en
especial en lo que a pasivos SMD se refiere. Las librerías empezaron a ser un
nido de componentes copiados-pegados con simples cambios en el valor de los
pasivos y empezaba también a complicarse el propio hecho de conocer qué tenía y
que no tenía en las librerías distribuidas en múltiples ficheros. Tras buscar
alternativas todo apuntaba a que la mejor solución era migrar mis ficheros de
librería a una basada en base de datos, por lo que instalé MSSQL en una VM y
empecé a montar las tablas iniciales con la estructura que requiere Altium.
Aquel cambio fue un gran salto, sabía en todo momento qué tenía y sobretodo,
sabía que no tendría que generar un nuevo símbolo para cada pasivo que
introdujese, lo que me permitía trabajar ya cómodamente con componentes reales
con fabricante y part number y no con componentes genéricos que complican la
posterior gestión de la BOM. Sin embargo, seguía siendo muy trabajoso gestionar
los ficheros PCBlib y SCHlib de footprints y símbolos respectivamente, por lo
que pensé que era buena oportunidad automatizar el proceso de alta de un nuevo
componente, footprint o símbolo. De esta idea nació esta API.

# Qué ofrece

La API ofrece endpoints REST a través de los cuales es posible introducir en la
base de datos componentes, símbolos y footprints y establecer entre ellos las
relaciones oportunas con el fin de crear un componente que puede ser leído por
Altium. Además, desde su versión 1.2.0, se ofrece la posibilidad de gestionar el
stock de los componentes pudiendo establecer niveles de stock y alarmas. 

La API ofrece endpoints REST a través de los cuales es posible introducir en la
base de datos componentes, símbolos y footprints y establecer entre ellos las
relaciones oportunas con el fin de crear un componente que puede ser leído por
Altium. Además, desde su versión 1.2.0, se ofrece la posibilidad de gestionar el
stock de los componentes pudiendo establecer niveles de stock y alarmas. Hasta
el momento no existen interfaces gráficas con las que poder interactuar con la
API, por lo que a día de hoy el consumo de la misma se realiza a través de CURL
o bien a través del cliente Postman, que hace que su utilización sea
relativamente sencilla.

{{< admonition note "¿Dónde encontrar este proyecto?" >}} Puedes descargar el
código de este proyecto en mi
[Github](https://github.com/pablintino/Altium-DBlib-source). Si simplemente
deseas utilizar el servicio puedes hacer pull de la última imagen Docker
construida en [Docker
Hub](https://hub.docker.com/r/pablintino/altium-dblib-api). {{< /admonition >}}

