All Projects → rp-consulting → Veronica Open Api

rp-consulting / Veronica Open Api

Licence: mit
🇪🇨 Rest API de código abierto para la integración con los servicios web del "Servicio de Rentas Internas" del Ecuador

Programming Languages

java
68154 projects - #9 most used programming language

Projects that are alternatives of or similar to Veronica Open Api

Javadevjournal
Source code for the tutorials published on the Javadevjournal site.
Stars: ✭ 141 (+206.52%)
Mutual labels:  rest-api, spring-boot
Crnk Framework
JSON API library for Java
Stars: ✭ 234 (+408.7%)
Mutual labels:  rest-api, spring-boot
Mcloud
基于Spring Cloud,实现微服务中常用的基础模块,包括 OAuth2 认证服务,统一注册中心,系统监控中心, 统一配置中心,API网关以及熔断器
Stars: ✭ 185 (+302.17%)
Mutual labels:  rest-api, spring-boot
Spring Webflux Reactive Rest Api Demo
Build Reactive Rest APIs with Spring WebFlux and Reactive Mongo
Stars: ✭ 117 (+154.35%)
Mutual labels:  rest-api, spring-boot
Spring Lemon
Helper library for Spring Boot web applications
Stars: ✭ 529 (+1050%)
Mutual labels:  rest-api, spring-boot
Spring Boot Vuejs
Example project showing how to build a Spring Boot App providing a GUI with Vue.js
Stars: ✭ 1,818 (+3852.17%)
Mutual labels:  rest-api, spring-boot
Spring Boot Postgresql Jpa Hibernate Rest Api Demo
Building RESTful APIs with Spring Boot, PostgreSQL, JPA and Hibernate
Stars: ✭ 209 (+354.35%)
Mutual labels:  rest-api, spring-boot
Springdoc Openapi
Library for OpenAPI 3 with spring-boot
Stars: ✭ 1,113 (+2319.57%)
Mutual labels:  rest-api, spring-boot
Bxbot
A simple Bitcoin trading bot written in Java.
Stars: ✭ 515 (+1019.57%)
Mutual labels:  rest-api, spring-boot
Cerberus
A demonstration of a completely stateless and RESTful token-based authorization system using JSON Web Tokens (JWT) and Spring Security.
Stars: ✭ 482 (+947.83%)
Mutual labels:  rest-api, spring-boot
Spring Boot Mongodb Angular Todo App
A Sample App built using Spring Boot, Angular and MongoDB
Stars: ✭ 84 (+82.61%)
Mutual labels:  rest-api, spring-boot
Great Big Example Application
A full-stack example app built with JHipster, Spring Boot, Kotlin, Angular 4, ngrx, and Webpack
Stars: ✭ 899 (+1854.35%)
Mutual labels:  rest-api, spring-boot
Spring Boot Sample App
Sample app generated from my spring boot archtype on :https://github.com/Romeh/spring-boot-quickstart-archtype
Stars: ✭ 81 (+76.09%)
Mutual labels:  rest-api, spring-boot
Gemini
Model Driven REST framework to automatically generate CRUD APIs
Stars: ✭ 138 (+200%)
Mutual labels:  rest-api, spring-boot
Kotlin Spring Boot Jpa Rest Api Demo
Build a Restful API with Kotlin, Spring Boot, Mysql, Jpa and Hibernate
Stars: ✭ 67 (+45.65%)
Mutual labels:  rest-api, spring-boot
Event Driven Spring Boot
Example Application to demo various flavours of handling domain events in Spring Boot
Stars: ✭ 194 (+321.74%)
Mutual labels:  rest-api, spring-boot
Market
Simple web-market: Spring, JSP, REST, Hibernate (under modernization)
Stars: ✭ 47 (+2.17%)
Mutual labels:  rest-api, spring-boot
Mycollab
An open source, free, high performance, stable and secure Java Application Business Platform of Project Management and Document
Stars: ✭ 1,063 (+2210.87%)
Mutual labels:  rest-api, spring-boot
Guns
Guns基于SpringBoot 2,致力于做更简洁的后台管理系统,完美整合springmvc + shiro + mybatis-plus + beetl!Guns项目代码简洁,注释丰富,上手容易,同时Guns包含许多基础模块(用户管理,角色管理,部门管理,字典管理等10个模块),可以直接作为一个后台管理系统的脚手架!
Stars: ✭ 3,327 (+7132.61%)
Mutual labels:  rest-api, spring-boot
Retrofit Spring Boot Starter
A springboot starter for retrofit, and supports many functional feature enhancements, greatly simplifying development.(实现了Retrofit与spring-boot框架快速整合,并支持了诸多功能增强,极大简化开发)
Stars: ✭ 658 (+1330.43%)
Mutual labels:  rest-api, spring-boot

Veronica es una API Rest de código abierto utilizada para la emisión y autorización de comprobantes electrónicos según la normativa vigente del Sistema de Rentas Internas del Ecuador. El proyecto ha sido desarrollado a través de una aplicación Spring-Boot 1.5.9.RELEASE. Adicionalmente, Veronica almacena los comprobantes en una base de datos PostgreSQL lo cual le permite realizar posteriores consultas más allá de las comunes como por ejemplo, consultar detalles de facturas, consultar totales o listar comprobantes por emisor o receptor.

Todo comprobante electrónico gestionado a través de Veronica manejará un ciclo de vida basado en 4 fases:

Cotenidos

Software requerido

  • JDK 1.8.0_121
  • Apache Maven 3.5.3
  • PostgreSQL 11.1-1

Pasos previos

Veronica posee una lista de dependencias que no se encuentran disponibles en el repositorio remoto de Maven por lo que se tendrá que hacer la instalación de forma manual. Para esto, ejecutar los comandos listados a continuación.

cd /veronica-open-api/additional_libs
mvn install:install-file -Dfile=jss-4.2.5.jar -DgroupId=org.mozilla -DartifactId=jss -Dversion=4.2.5 -Dpackaging=jar
mvn install:install-file -Dfile=MITyCLibAPI-1.0.4.jar -DgroupId=es.mityc.javasign -DartifactId=api -Dversion=1.0.4 -Dpackaging=jar
mvn install:install-file -Dfile=MITyCLibCert-1.0.4.jar -DgroupId=es.mityc.javasign -DartifactId=cert -Dversion=1.0.4 -Dpackaging=jar
mvn install:install-file -Dfile=MITyCLibOCSP-1.0.4.jar -DgroupId=es.mityc.javasign -DartifactId=ocsp  -Dversion=1.0.4 -Dpackaging=jar
mvn install:install-file -Dfile=MITyCLibPolicy-1.0.4.jar -DgroupId=es.mityc.javasign -DartifactId=policy -Dversion=1.0.4 -Dpackaging=jar
mvn install:install-file -Dfile=MITyCLibTrust-1.0.4.jar -DgroupId=es.mityc.javasign -DartifactId=trust -Dversion=1.0.4 -Dpackaging=jar
mvn install:install-file -Dfile=MITyCLibTSA-1.0.4.jar -DgroupId=es.mityc.javasign -DartifactId=tsa -Dversion=1.0.4 -Dpackaging=jar
mvn install:install-file -Dfile=MITyCLibXADES-1.0.4.jar -DgroupId=es.mityc.javasign -DartifactId=xades -Dversion=1.0.4 -Dpackaging=jar
mvn install:install-file -Dfile=xmlsec-1.4.2-ADSI-1.0.jar -DgroupId=org.apache.xmlsec-adsi -DartifactId=xmlsec-adsi -Dversion=1.4.2 -Dpackaging=jar

Instalación

Veronica puede ser ejecutado como una aplicación Spring-Boot la cual requiere la instalación previa de PostgreSQL.

Despliegue estándar

  1. Abrir una consola o shell y crear la base de datos.
$ psql -U postgres
# CREATE DATABASE "veronica";
# \q
  1. Crear la estructura de tablas ejecutando el script veronica.sql.
$ cd veronica-open-api/src/sql
$ psql -U postgres veronica < veronica.sql
  1. Agregar la siguiente entrada al final del archivo postgresql.conf y reiniciar el servidor de base de datos.
encrypt.key = 8qxBjzCdQkwdpu

Recordar cambiar la clave de conexión de la base de datos en la carpeta /veronica-open-api/src/filters

  1. Instalar Veronica.
$ cd veronica-open-api
$ mvn clean package install

Veronica proporciona dos perfiles de despliegue: Desarrollo y Producción. Cada uno de estos perfiles posee un archivo de configuración situado en /veronica-open-api/src/filters. Para desplegar el proyecto con el perfil adecuado, indicar el ambiente como argumento de ejecución.

Desarrollo

$ cd veronica-open-api/app
$ mvn spring-boot:run -Pdevelopment

Producción

$ cd veronica-open-api/app
$ mvn spring-boot:run -Pproduction

Seguridad

Al instalar la base de datos de Veronica, automáticamente se crearán dos usuarios con sus respectivas contraseñas y roles.

Usuario Contraseña Rol
admin veronica ROLE_ADMIN
user veronica ROLE_USER

Obtención de tokens OAuth2.0

Para generar un token para el usuario admin, por ejemplo, podermos ejecutar el siguiente comando curl:

curl -u veronica:veronica -X POST http://localhost:8080/veronica/oauth/token -H "Accept:application/json" -d "username=admin&password=veronica&grant_type=password"

También en el archivo /veronica-open-api/src/postman/Verónica API Reference.postman_collection.json de postman podemos encontrar un ejemplo de llamada a este endpoint.

Con el token generado podemos hacer uso de cualquier de los endpoints que ofrece Veronica a través de su API Rest. Para esto, debemos utilizar el token generado a través de una llamada con autenticación Bearer, tal como se muestra a continuación:

curl http://localhost:8080/veronica/api/v1.0/facturas/2204201901109170199100120010010001467560014675614/archivos/xml -H "Authorization: Bearer 77ed953e-b3b6-4ea1-820e-2e9acc702293"

Documentación

Swagger

Para acceder, debemos utilizar los usuarios indicados en la sección anterior.

http://localhost:8080/veronica/swagger-ui.html

Postman

Veronica también pone a disposición de los usuarios una colección de llamadas y ejemplos que se encuentra en la ruta /src/postman/Verónica API Reference.postman_collection.json.

Bitácora

  • V1: 2018-04-12, Primera versión.
  • V2: 2018-04-27, Perfiles de Maven.
  • V3: 2018-04-28, Habilitar Swagger2.
  • V4: 2018-11-10, Generación de RIDEs.
  • V5: 2018-11-19, Integración con Postman.
  • V6: 2019-01-09, Integración con PostgreSQL.
  • V7: 2019-02-21, Soporte para Retenciones y Guías de remisión.
  • V8: 2019-05-18, Soporte para Notas de débito.
  • V9: 2019-05-22, Soporte para Docker con Fabric8.
  • V10: 2019-05-28, Seguridad con OAuth2.0.
  • V11: 2019-12-27, Mover dependencias genéricas de Verónica a Sonatype

Autores

@RolandoPalermo @XaviMontero @Israel

Colaboradores

@Japstones @vperilla @andresluzu

Patrocinadores

Conviértete en un patrocinador

Prueba Veronica Enterprise

  • Anexo 21 – Requisito obligatorio para comprobantes electrónicos emitidos por contribuyentes designados Microempresas y/o Agentes de Retención.
  • Soporte para todos los tipos de documentos electrónicos
  • Soporte para notificaciones por email con plantillas personalizadas
  • Soporte para plantillas personalizadas de RIDEs por razón social y por punto de emisión
  • Soporte para QueryDSL y REST Query Language
  • Contáctanos en [email protected] para más información
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].