imco / catalogonoms-api
墨西哥官方规范目录的应用程序编程接口
Requires
- doctrine/dbal: 2.5.2
- kevinlebrun/slug.php: master-dev
This package is not auto-updated.
Last update: 2024-09-20 18:44:02 UTC
README
Laravel5的包。
联邦公报数据库的副本。Laravel5包。此包定期下载联邦公报,并允许发布墨西哥官方标准(NOM)和墨西哥标准(NMX)及其当前状态。
目录
依赖
- PostgreSQL 10
- PLPython3u
sudo apt-get install postgresql-plpython-10
- PHP 7.2
- csvquery
pip3 install csvquerytool
- Python3
- NLTK
pip3 install -U nltk
- NLTK
- Laravel5
- http://diariooficial.gob.mx/WS_getDiarioFecha.php
- http://diariooficial.gob.mx/BB_menuPrincipal.php
- http://diariooficial.gob.mx/WS_getDiarioPDF.php
- http://diariooficial.gob.mx/BB_DetalleEdicion.php
- http://diariooficial.gob.mx/WS_getDiarioFull.php
- http://diariooficial.gob.mx/nota_detalle_popup.php
错误:语言"plpython3u"不存在
错误:角色"admin_catalogonoms"不存在
create role admin_catalogonoms with password 'secret';
create database ${MYAPI} with owner admin_catalogonoms;
CREATE EXTENSION plpython3u;
包含的额外模块
访问节点
此API使用以下统一资源标识符(URL)来更新数据库
-
获取一个月内发布的日期:http://diariooficial.gob.mx/WS_getDiarioFecha.php?year=2012&month=08
-
了解特定日期是否可用的PDF文件:http://diariooficial.gob.mx/WS_getDiarioPDF.php?day=29&month=08&year=2012&edicion=MAT
-
一个用于获取当天摘要的模型,参数较少(在这个例子中只传递了cod_diario):http://diariooficial.gob.mx/BB_DetalleEdicion.php?cod_diario=253279
-
通过它,您可以从特定日期开始,了解前99个日期的日报代码,每个日期都带有日期和版次:http://diariooficial.gob.mx/BB_menuPrincipal.php?day=08&month=09&year=2014
备注
用于查询注释的一个节点返回了错误的字符编码结果。另一个节点正确地返回了编码后的结果,但已经识别出一些在第一个节点中存在而在第二个节点中不存在的注释。
安装
此包安装在一个Laravel应用中。要安装Laravel并创建一个新应用,请参阅Laravel5文档
1.A 默认
此分发包含一个Makefile来自动化安装。它将在父目录中创建一个新的应用程序apiv3。
make
1.B 开发
如果希望为开发目的安装包并实时查看更改,可以克隆存储库并指示composer从何处读取类,在composer.json
文件中加载包类的信息。
...
"autoload": {
...
"psr-4": {
...
"IMCO\\CatalogoNOMsApi\\" :"/path/to/catalogonoms-api/src/"
...
}
...
}
...
1.C 生产/预发布
如果打算在开发或生产环境中安装包,需要使用已发布的版本,则需要在依赖配置中添加相应的存储库。
...
"repositories": [
...
{
"type": "git",
"url": "https://github.com/imco/dof-api.git"
}
...
],
...
"require-dev": {
...
"imco/catalogonoms-api": "*",
...
},
...
或者,也可以通过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. 加载服务提供商
在文件 config/app.php
中添加包的服务提供商。
'providers' => [
...
/*
* Package Service Providers...
*/
...
IMCO\CatalogoNOMsApi\CatalogoNOMsApiServiceProvider::class,
...
]
3. 发布包的资产
发布提供商文档并清除配置缓存
php artisan vendor:publish
../composher.phar config:cache
4. 配置环境变量
在 Laravel 应用程序的 .env
文件中,需要使用 CN
前缀来配置数据库环境变量。如果不存在该文件,可以使用 .env.example
作为指南,例如:CNDB_DRIVER=pgsql CNDB_HOST=localhost CNDB_DATABASE=homestead CNDB_USERNAME=homestead CNDB_PASSWORD=secret CNDB_PORT=5432
如果省略了 CN
前缀,包将尝试使用默认变量连接,即:
DB_DRIVER=pgsql
DB_HOST=localhost
DB_DATABASE=homestead
DB_USERNAME=homestead
DB_PASSWORD=secret
DB_PORT=5432
在这种情况下,生成的表名将包含前缀 catalognoms_
,以便与数据库中任何其他表区分开来
5. 执行迁移
php artisan migrate
6. 初始化数据库
php artisan db:seed --class="IMCO\CatalogoNOMsApi\CatalogoNOMsDatabaseSeeder"
初始数据库
可以下载数据库的备份(至)
分类器
分类器是一个 Python3 脚本,它使用 NLTK 库 http://www.nltk.org/ 以及 "punkt" 包
我自己:这是唯一的 Python 脚本吗?
数据库自动更新
为了保持数据库更新,使用 Laravel 的计划任务功能,要在 app/Console/Kernel.php
中添加以下行:
use IMCO\CatalogoNOMsApi\DOFClientController;
并在 schedule
方法中
$schedule->call(function () {
DOFClientController::fillNotes();
})->everyFiveMinutes()->name('fillNotes')->withoutOverlapping();
$schedule->call(function () {
DOFClientController::getDofOnDate();
})->twiceDaily(1, 22)->name('downloadDOF');
在 Cron 中添加以下条目 * * * * * php /path/to/artisan schedule:run >> /dev/null 2>&1
分析
为了跟踪 API 的使用情况,需要将跟踪代码添加到环境变量文件 .env
中,并在我们的应用程序中注册 Middleware。
TRACKINGCODE="UA-XXXXX-1"
致谢
许可证
MIT 许可证(MIT)
版权所有 © 2015 墨西哥竞争力研究所,A.C.
特此免费授予任何人获得此软件及其相关文档副本(“软件”)的权利,不受任何限制地处理软件,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或出售软件副本,并允许获得软件副本的个人执行上述操作,前提是遵守以下条件
上述版权声明和本许可声明应包含在软件的所有副本或主要部分中。
本软件按“现状”提供,不提供任何明示或暗示的保证,包括但不限于适销性、适用于特定目的和无侵权性保证。在任何情况下,作者或版权所有者均不对任何索赔、损害或其他责任承担责任,无论这些责任是因合同、侵权或其他行为引起的,无论这些责任是源于、因或与软件或软件的使用或其他交易有关。