PHPackages                             imco/catalogonoms-api - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [API Development](/categories/api)
4. /
5. imco/catalogonoms-api

ActiveLibrary[API Development](/categories/api)

imco/catalogonoms-api
=====================

Application Programing Interface para el Catalogo de Normas oficiales Mexicanas

v1.0.0-alpha(10y ago)482GPL-3.0+HTML

Since Feb 17Pushed 7y ago1 watchersCompare

[ Source](https://github.com/imco/dof-api)[ Packagist](https://packagist.org/packages/imco/catalogonoms-api)[ RSS](/packages/imco-catalogonoms-api/feed)WikiDiscussions nmx Synced 4w ago

READMEChangelog (1)Dependencies (2)Versions (2)Used By (0)

Diario Oficial de la Federación / Normas Mexicanas - API
========================================================

[](#diario-oficial-de-la-federación--normas-mexicanas---api)

Paquete para [Laravel5](https://laravel.com/docs/5.7#installing-laravel).

Copia de la Base de Datos del Diario Oficial de la Federación. Paquete de Laravel5. Este paquete descarga el Diario Oficial de la Federación periodicamente y permite las publicacicones de Normas Oficiales Mexicanas (NOM) y Normas Mexicanas (NMX) y su estado actual.

Tabla de Contenido
------------------

[](#tabla-de-contenido)

- [Instalación](#instalacion)
- [Agredecimientos](#agradecimientos)
- [Licencia](#licencia)

Dependencias
------------

[](#dependencias)

- PostgreSQL 10
    - PLPython3u

    ```
    sudo apt-get install postgresql-plpython-10

    ```
- PHP 7.2
- [csvquery](https://pypi.org/project/csvquerytool/) `pip3 install csvquerytool`
- Phyton3
    - [NLTK](https://www.nltk.org/) `pip3 install -U nltk`
- Laravel5
- [http://diariooficial.gob.mx/WS\_getDiarioFecha.php](http://diariooficial.gob.mx/WS_getDiarioFecha.php)
- [http://diariooficial.gob.mx/BB\_menuPrincipal.php](http://diariooficial.gob.mx/BB_menuPrincipal.php)
- [http://diariooficial.gob.mx/WS\_getDiarioPDF.php](http://diariooficial.gob.mx/WS_getDiarioPDF.php)
- [http://diariooficial.gob.mx/BB\_DetalleEdicion.php](http://diariooficial.gob.mx/BB_DetalleEdicion.php)
- [http://diariooficial.gob.mx/WS\_getDiarioFull.php](http://diariooficial.gob.mx/WS_getDiarioFull.php)
- [http://diariooficial.gob.mx/nota\_detalle\_popup.php](http://diariooficial.gob.mx/nota_detalle_popup.php)

ERROR: language "plpython3u" does not exist

```

```

ERROR: role "admin\_catalogonoms" does not exist

```
create role admin_catalogonoms with password 'secret';
create database ${MYAPI} with owner admin_catalogonoms;

```

```
CREATE EXTENSION plpython3u;

```

### Modulos extras contenidos

[](#modulos-extras-contenidos)

- [Catalogo de NOMs](http://noms.imco.org.mx)
- [Catalogo de NMX](http://nmx.imco.org.mx)

### Nodos de acceso

[](#nodos-de-acceso)

Este API utiliza los siguientes Idendificadores de Recurso Uniforme (URL) para actualizar la Base de Datos:

- Para obtener las fechas que tienen publicación en un mes: [http://diariooficial.gob.mx/WS\_getDiarioFecha.php?year=2012&amp;month=08](http://diariooficial.gob.mx/WS_getDiarioFecha.php?year=2012&month=08)
- Conocer si hay archivo PDF disponible para una fecha específica: [http://diariooficial.gob.mx/WS\_getDiarioPDF.php?day=29&amp;month=08&amp;year=2012&amp;edicion=MAT](http://diariooficial.gob.mx/WS_getDiarioPDF.php?day=29&month=08&year=2012&edicion=MAT)
- Un modelo para obtener el sumario completo del día con un parámetro menos (en éste sólo se pasa el cod\_diario): [http://diariooficial.gob.mx/BB\_DetalleEdicion.php?cod\_diario=253279](http://diariooficial.gob.mx/BB_DetalleEdicion.php?cod_diario=253279)
- Con éste podrán conocer a partir de una fecha específica, los códigos de diario de las 99 fechas anteriores, cada una identificada con fecha y edición: [http://diariooficial.gob.mx/BB\_menuPrincipal.php?day=08&amp;month=09&amp;year=2014](http://diariooficial.gob.mx/BB_menuPrincipal.php?day=08&month=09&year=2014)

#### Observaciones

[](#observaciones)

Uno de los nodos para consultar las notas devuelve el resultado con una codificación de carácteres incorrecta. El otro las devuelve correctamente codificadas pero se han identificado *notas* que existen en el primer nodo más no en el segundo.

Instalación
-----------

[](#instalación)

Este paquete se instala en una aplicación de Laravel. Para instalar laravel y crear una nueva aplicaicón consulta la [documentación de Laravel5](https://laravel.com/docs/5.6/installation)

#### 1.A Default

[](#1a-default)

Esta distribución cuanta con un Makefile para automatizar al instalación. Creara una nueva aplicación *apiv3* e el directorio padre

```
make

```

#### 1.B Desarrollo

[](#1b-desarrollo)

Si se desea instalar el paquete con fines de desarrollo, para visualizar los cambios en cuanto se realicen, es posible clonar el repositorio e indicarle a composer desde dónde ha de leer las clases, el el archivo `composer.json` la información para cargar las clases del paquete:

```
...
"autoload": {
  ...
  "psr-4": {
    ...
    "IMCO\\CatalogoNOMsApi\\" :"/path/to/catalogonoms-api/src/"
    ...
  }
  ...
}
...

```

#### 1.C Producción/Stagging

[](#1c-producciónstagging)

En caso de que le paquete se vaya a instalar en un entorno de desarrollo o producción, utilizando la versión que esté publicada, es necesario agregar el repositorio correspondiente a la configuración de dependencias:

```
...
"repositories": [
    ...
    {
        "type": "git",
        "url": "https://github.com/imco/dof-api.git"
    }
    ...
],
...
"require-dev": {
    ...
    "imco/catalogonoms-api": "*",
    ...
},
...

```

Alternativamente se puede instalar el paquete ejecutando mediante composer:

```
cd api
../composer.phar config repositories.catalogonoms-api git ssh://dev.imco.org.mx/var/git/catalogonoms-api.git
../composer.phar require imco/catalogonoms-api:dev-nmx

```

### 2. Carga el Service Provider

[](#2-carga-el-service-provider)

En el archivo `config/app.php` agregar el Service Provider del paquete.

```
'providers' => [
      ...
      /*
       * Package Service Providers...
       */
      ...

      IMCO\CatalogoNOMsApi\CatalogoNOMsApiServiceProvider::class,
      ...
  ]

```

### 3. Publicar los assets del paquete

[](#3-publicar-los-assets-del-paquete)

Publicar los documentos de los proveedores y limpiar el cache de configuración

```
php artisan vendor:publish
../composher.phar config:cache

```

### 4. Configura las variables de ambiente

[](#4-configura-las-variables-de-ambiente)

En el archivo `.env` de la aplicación de Laravel se ha de configurar el ambiente de la Base de Datos utilizando el prefijo `CN` en las variables de ambiente, de no existir el archivo puedes utilizar `.env.example` cómo guia, ejemplo: CNDB\_DRIVER=pgsql CNDB\_HOST=localhost CNDB\_DATABASE=homestead CNDB\_USERNAME=homestead CNDB\_PASSWORD=secret CNDB\_PORT=5432

Si se omite el prefijo `CN`, el paquete intentará conectarse utilizando las variables default, i.e.:

```
DB_DRIVER=pgsql
DB_HOST=localhost
DB_DATABASE=homestead
DB_USERNAME=homestead
DB_PASSWORD=secret
DB_PORT=5432

```

En cuyo caso al nombre de las tablas generadas se les incluirá el prefijo `catalognoms_` para poder distinguirlas de cualquier otra tabla que se encuentre en la misma base de datos

### 5. Ejecuta las migraciones

[](#5-ejecuta-las-migraciones)

`php artisan migrate`

### 6. Inicializar Base de Datos

[](#6-inicializar-base-de-datos)

`php artisan db:seed --class="IMCO\CatalogoNOMsApi\CatalogoNOMsDatabaseSeeder"`

### Base de datos inicial

[](#base-de-datos-inicial)

Se puede descargar un respaldo de la Base de Datos (hasta )

### Clasificador

[](#clasificador)

El clasificador es un script de Python3, el cuál utiliza la libreria NLTK  junto con el paquete "punkt"

> > # Mi Mismo: ¿es el único script de python utilizado?
> >
> > [](#mi-mismo-es-el-único-script-de-python-utilizado)

### Actualización automática de la Base de Datos

[](#actualización-automática-de-la-base-de-datos)

Para mantener actualizada la Base de datos se hace uso de la funcionalidad de tareas programadas de Laravel, para ejecutarlo es necesario agregar las siguientes lineas en `app/Console/Kernel.php`

`use IMCO\CatalogoNOMsApi\DOFClientController;`

y dentro del método `schedule`:

```
$schedule->call(function () {
    DOFClientController::fillNotes();
})->everyFiveMinutes()->name('fillNotes')->withoutOverlapping();

$schedule->call(function () {
    DOFClientController::getDofOnDate();
})->twiceDaily(1, 22)->name('downloadDOF');

```

Agregar la siguiente entrada en Cron `* * * * * php /path/to/artisan schedule:run >> /dev/null 2>&1`

### Analytics

[](#analytics)

Para rastrear el uso del API es necesario agregar el código de rastreo al archivo de variables de ambiente `.env` y registrar el Middleware en nuestra aplicación.

```
TRACKINGCODE="UA-XXXXX-1"

```

Agradecimientos
---------------

[](#agradecimientos)

- [PROPEM (Programa de Política Económica para México)](https://propem.org/es/)

Licencia
--------

[](#licencia)

The MIT License (MIT)

Copyright (c) 2015 Instituto Mexicano para la Competitividad, A.C.

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

###  Health Score

24

—

LowBetter than 31% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity10

Limited adoption so far

Community9

Small or concentrated contributor base

Maturity49

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Unknown

Total

1

Last Release

3786d ago

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/4691872?v=4)[Emir Herrera González](/maintainers/emirhg)[@emirhg](https://github.com/emirhg)

---

Top Contributors

[![emirhg](https://avatars.githubusercontent.com/u/4691872?v=4)](https://github.com/emirhg "emirhg (6 commits)")

### Embed Badge

![Health badge](/badges/imco-catalogonoms-api/health.svg)

```
[![Health](https://phpackages.com/badges/imco-catalogonoms-api/health.svg)](https://phpackages.com/packages/imco-catalogonoms-api)
```

###  Alternatives

[sylius/sylius

E-Commerce platform for PHP, based on Symfony framework.

8.5k5.8M712](/packages/sylius-sylius)[easycorp/easyadmin-bundle

Admin generator for Symfony applications

4.3k17.5M378](/packages/easycorp-easyadmin-bundle)[flat3/lodata

OData v4.01 Producer for Laravel

99346.1k](/packages/flat3-lodata)[pagemachine/searchable

TYPO3 extension to index and search content with Elasticsearch

1039.3k](/packages/pagemachine-searchable)[2lenet/crudit-bundle

The easy like Crud'it Bundle.

1615.6k12](/packages/2lenet-crudit-bundle)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
