{"id":18217284,"url":"https://github.com/ifazasalcedo/web-api-restfull-soap","last_synced_at":"2026-01-30T04:46:25.233Z","repository":{"id":260846893,"uuid":"882262328","full_name":"ifazaSalcedo/web-api-restfull-soap","owner":"ifazaSalcedo","description":"ApiRest + WebService SOAP para consulta ruc contribuyentes SET Paraguay  para apoyo a sistemas independientes","archived":false,"fork":false,"pushed_at":"2024-11-14T12:18:37.000Z","size":48,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-24T10:45:46.038Z","etag":null,"topics":["api-rest","java17","soap-web-services","springboot"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ifazaSalcedo.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-11-02T10:45:08.000Z","updated_at":"2024-11-14T12:18:40.000Z","dependencies_parsed_at":null,"dependency_job_id":"eefc50bf-a38d-4532-817f-69fe5349c302","html_url":"https://github.com/ifazaSalcedo/web-api-restfull-soap","commit_stats":{"total_commits":4,"total_committers":2,"mean_commits":2.0,"dds":0.5,"last_synced_commit":"8ec4d0f418de667cd80da159c43c0b1e2f5eed8b"},"previous_names":["ifazasalcedo/web-api-restfull-soap"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ifazaSalcedo%2Fweb-api-restfull-soap","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ifazaSalcedo%2Fweb-api-restfull-soap/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ifazaSalcedo%2Fweb-api-restfull-soap/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ifazaSalcedo%2Fweb-api-restfull-soap/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ifazaSalcedo","download_url":"https://codeload.github.com/ifazaSalcedo/web-api-restfull-soap/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248215192,"owners_count":21066622,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["api-rest","java17","soap-web-services","springboot"],"created_at":"2024-11-03T17:04:27.907Z","updated_at":"2026-01-30T04:46:23.302Z","avatar_url":"https://github.com/ifazaSalcedo.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# API de Contribuyentes\n\nEste proyecto ofrece una API REST y un servicio SOAP para la gestión de contribuyentes. Los servicios permiten obtener un listado de contribuyentes y consultar datos de contribuyentes específicos, utilizando una estructura en Java con Spring Boot.\n\n## Estructura del Proyecto\n\n- `Person` - Entidad que representa a un contribuyente, almacenada en la base de datos.\n- `PersonControllerRest` - Controlador REST que expone endpoints HTTP para listar y buscar contribuyentes.\n- `PersonServicesSoap` - Endpoint SOAP que ofrece operaciones para listar y buscar contribuyentes por RUC.\n- `PersonServicesImplement` - Servicio de negocio que contiene la lógica de acceso a los datos.\n\n## Tecnologías\n\n- Java 17\n- Spring Boot 3.3.5\n- API REST con Spring MVC\n- Servicio SOAP con Spring Web Services\n- MySQL como base de datos\n\n## Entidad `Person`\n\nLa entidad `Person` representa la información del contribuyente y contiene los siguientes campos:\n\n- `personId` (Long): Identificador único de la persona.\n- `name` (String): Nombre del contribuyente.\n- `lastname` (String): Apellido del contribuyente.\n- `ruc` (String): Número de RUC.\n- `dv` (int): Dígito verificador del RUC.\n- `rucFormer` (String): RUC anterior.\n- `state` (Enum `State`): Estado del contribuyente (por ejemplo: ACTIVO, INACTIVO).\n\n## API REST\n\nLa API REST permite acceder a los datos de los contribuyentes mediante los siguientes endpoints.\n\n### Endpoints\n\n- **Listar contribuyentes**  \n  `GET /rest/contribuyentes-list`  \n  Retorna una lista de contribuyentes paginada.\n\n  **Parámetros**:\n  - `page` (int, opcional): Número de página. Valor por defecto: 0.\n  - `size` (int, opcional): Tamaño de la página. Valor por defecto: 60.\n\n- **Buscar contribuyentes por nombre**  \n  `GET /rest/contribuyentes-nombre`  \n  Retorna una lista de contribuyentes cuyo nombre contiene el filtro especificado, paginada.\n\n  **Parámetros**:\n  - `filter` (String): Filtro de búsqueda por nombre.\n  - `page` (int, opcional): Número de página. Valor por defecto: 0.\n  - `size` (int, opcional): Tamaño de la página. Valor por defecto: 60.\n\n- **Buscar contribuyente por RUC**  \n  `GET /rest/contribuyente-ruc`  \n  Retorna los datos de un contribuyente según el número de RUC especificado.\n\n  **Parámetros**:\n  - `filter` (String): RUC del contribuyente a buscar.\n\n## Servicio SOAP\n\nEl servicio SOAP permite realizar consultas de contribuyentes, incluyendo obtener un listado paginado y consultar por RUC.\n\n### Namespace\n\nTodos los mensajes SOAP están dentro del namespace:\n`http://www.appt.com/set/web_api/soap/contribuyente`\n\n### Operaciones\n\n- **Obtener contribuyente por RUC**  \n  `getPersonRucRequest`  \n  Retorna los datos del contribuyente con el RUC proporcionado.\n\n  **Request**:\n  - `ruc` (String): RUC del contribuyente.\n\n  **Response**:\n  - `PersonDto`: DTO del contribuyente con los detalles del RUC.\n\n- **Listar contribuyentes**  \n  `getPersonsListRequest`  \n  Retorna una lista paginada de contribuyentes.\n\n  **Request**:\n  - `page` (int): Número de página.\n  - `size` (int): Tamaño de la página.\n\n  **Response**:\n  - `GetPersonsListResponse`: Contiene la lista de contribuyentes y detalles de la paginación (total de páginas, elementos totales, página actual, tamaño de página).\n\n## Configuración y Despliegue\n\n1. Clona el repositorio y navega a la carpeta del proyecto.\n2. Configura la conexión a la base de datos en `application.properties`.\n3. Ejecuta el proyecto con:\n   ```bash\n   ./mvnw spring-boot:run\n\n## Configuración y Despliegue \n**Uso**\n- La API REST estará disponible en http://localhost:8080/rest/ y el servicio SOAP en http://localhost:8080/ws.\n- Este servicio es independiente y puede utilizarse como un módulo de apoyo para sistemas de facturación, proporcionando consultas a datos de contribuyentes. Ideal para aplicaciones que requieren funcionalidades de búsqueda rápida y acceso a datos de identificación tributaria.\n\n## Recomendación de Despliegue\n\n### Elección entre SOAP y REST\n\nPara simplificar la arquitectura y optimizar el rendimiento, recomendamos desplegar solo uno de los dos tipos de servicios (SOAP o REST), dependiendo de los requisitos del sistema que consuma esta API:\n\n- **SOAP** es adecuado para sistemas empresariales o entornos que requieren una estructura estricta de mensajes y soporte transaccional.\n- **REST** es más ligero y es preferido para aplicaciones web y móviles, donde se necesita comunicación rápida y menos estructurada.\n\n### Cómo Desactivar un Tipo de Servicio\n\nPara desactivar un tipo de servicio (REST o SOAP), puedes utilizar la configuración de Spring Boot en `application.properties` o eliminar la clase de controlador correspondiente.\n\n#### Desactivar REST\n\n1. En el archivo `application.properties`, agrega la siguiente línea para desactivar el escaneo de controladores REST:\n   ```properties\n   spring.main.web-application-type=NONE\n\n   ## Licencia y Modificaciones\n\nEste proyecto es de **uso libre**, lo que significa que puedes clonarlo, modificarlo y adaptarlo según tus necesidades. La estructura, los servicios y las configuraciones pueden personalizarse para ajustarse a los requisitos específicos de cualquier sistema que desees desarrollar.\n\nTe animamos a contribuir con mejoras o a adaptar la API para integrarla en tus propios sistemas. Las modificaciones pueden incluir mejoras en el rendimiento, ampliación de servicios, adaptación a nuevas arquitecturas de seguridad, o ajustes para una mejor integración en tu infraestructura.\n\n## Configuración de Seguridad con API Key\n\nPara mejorar la seguridad de la API, se está trabajando en una **configuración de autenticación mediante API Key**. Esta implementación se encuentra en la rama `desarrollo-security`. Puedes acceder a esta rama para ver la configuración y pruebas actuales de seguridad, así como para contribuir o adaptar la configuración de seguridad a tu propio entorno.\n\n### Instrucciones para trabajar en la rama de seguridad\n\n1. Clona el repositorio y cambia a la rama `desarrollo-apy-key-security`:\n   ```bash\n   git clone \u003curl-del-repositorio\u003e\n   cd \u003cnombre-del-directorio\u003e\n   git checkout desarrollo-apy-key-security\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fifazasalcedo%2Fweb-api-restfull-soap","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fifazasalcedo%2Fweb-api-restfull-soap","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fifazasalcedo%2Fweb-api-restfull-soap/lists"}