@@ -7,159 +7,20 @@ API Gateway: Cliente de API en Python
77 :target: https://pypi.org/project/apigatewaycl
88.. image :: https://img.shields.io/pypi/pyversions/apigatewaycl.svg
99 :target: https://pypi.org/project/apigatewaycl
10+ .. image :: https://scrutinizer-ci.com/g/apigatewaycl/apigateway-api-client-python/badges/quality-score.png?b=master
11+ :target: https://scrutinizer-ci.com/g/apigatewaycl/apigateway-api-client-python/
12+ .. image :: https://scrutinizer-ci.com/g/apigatewaycl/apigateway-api-client-python/badges/coverage.png?b=master
13+ :target: https://scrutinizer-ci.com/g/apigatewaycl/apigateway-api-client-python/
14+ .. image :: https://app.fossa.com/api/projects/git%2Bgithub.com%2Fapigatewaycl%2Fapigateway-api-client-python.svg?type=shield&issueType=license
15+ :target: https://app.fossa.com/projects/git%2Bgithub.com%2Fapigatewaycl%2Fapigateway-api-client-python?ref=badge_shield&issueType=license
16+ .. image :: https://app.fossa.com/api/projects/git%2Bgithub.com%2Fapigatewaycl%2Fapigateway-api-client-python.svg?type=shield&issueType=security
17+ :target: https://app.fossa.com/projects/git%2Bgithub.com%2Fapigatewaycl%2Fapigateway-api-client-python?ref=badge_shield&issueType=security
1018.. image :: https://img.shields.io/pypi/l/apigatewaycl.svg
1119 :target: https://raw.githubusercontent.com/apigatewaycl/apigateway-api-client-python/master/COPYING
1220
1321Cliente para realizar la integración con los servicios web de `API Gateway <https://www.apigateway.cl >`_ desde Python.
1422
15- Instalación y actualización
16- ---------------------------
17-
18- Instalar usando un entorno virtual y PIP con:
19-
20- .. code :: shell
21-
22- python3 -m venv venv
23- source venv/bin/activate
24- pip install apigatewaycl
25-
26- Actualizar usando PIP con:
27-
28- .. code :: shell
29-
30- pip install apigatewaycl --upgrade
31-
32- Cliente genérico vs clientes específicos
33- ----------------------------------------
34-
35- Este cliente de API Gateway tiene 2 formas de acceder a los recursos de la API:
36-
37- 1. Cliente genérico: es un cliente que permite consumir de manera sencilla cualquier
38- recurso de la API. Que actualmente exista o sea añadido en el futuro. Esto se logra
39- porque el cliente recibe los nombres de los recursos, la parte de la URL que permite
40- acceder al servicio web solicitado. Se proveen métodos que sólo sirven para acceder
41- a la API de manera genérica, pero no para hacer acciones específicas ni obtener los
42- datos en un formato específico. Este cliente es el que entrega mayor flexibilidad, ya
43- que cada programador decide qué recursos desea consumir y cómo desea obtener los datos.
44-
45- 2. Clientes específicos: son clases que permiten acceder de forma más natural a los
46- recursos de la API. Al instanciar la clase, se tendrán métodos sencillos con parámetros
47- para consumir la API. Sin ser necesario preocuparse de recordar o buscar en la
48- documentación el nombre de los recursos que se deben consumir. Además de entregar los
49- datos ya "listos" para ser usados en vez de tener que preocuparse de qué método del
50- cliente genérico usar para obtenerlos en el formato requerido.
51-
52- Autenticación en API Gateway
53- ----------------------------
54-
55- Lo más simple, y recomendado, es usar una variable de entorno con el
56- `token del usuario <https://apigateway.cl/dashboard#api-auth >`_, la cual será
57- reconocida automáticamente por el cliente:
58-
59- .. code :: shell
60-
61- export APIGATEWAY_API_TOKEN=" aquí-tu-token-de-usuario"
62-
63- Si no se desea usar una variable de entorno, al instanciar los objetos se
64- deberá indicar el token del usuario. Ejemplo con el cliente genérico:
65-
66- .. code :: python
67-
68- import apigatewaycl
69- APIGATEWAY_API_TOKEN = " aquí-tu-token-de-usuario"
70- client = apigatewaycl.api_client.ApiClient(APIGATEWAY_API_TOKEN )
71-
72- El siguiente es un ejemplo con el cliente específico de Rcv. Primero se pasan
73- los datos obligatorios de RUT y clave del usuario. Luego además se pasa el token
74- delusuario de la API.
75-
76- .. code :: python
77-
78- import apigatewaycl
79- APIGATEWAY_API_TOKEN = " aquí-tu-token-de-usuario"
80- SII_USUARIO_RUT = " "
81- SII_USUARIO_CLAVE = " "
82- rcv_client = Rcv(SII_USUARIO_RUT , SII_USUARIO_CLAVE , api_token = APIGATEWAY_API_TOKEN )
83-
84- Si se usan variables de entorno, en ambos ejemplos se puede omitir el argumento `api_token `.
85-
86- Pruebas
87- -------
88-
89- Las pruebas utilizan un archivo llamado `test.env `, que sirve para definir todas las variables de entorno
90- necesarias para ejecutar estas pruebas.
91-
92- Estas pruebas utilizan `unittest `, se ejecutan con el archivo `run.py `, y dependiendo de cómo se configure
93- `test.env `, se pueden omitir ciertas pruebas. Asegúrate de definir las siguientes variables en `test.env `,
94- o no podrás efectuar la mayoría de las pruebas:
95-
96- - `APIGATEWAY_API_URL `
97- - `APIGATEWAY_API_TOKEN `
98- - `TEST_CONTRIBUYENTE_IDENTIFICADOR `
99- - `TEST_CONTRIBUYENTE_CLAVE `
100- - `TEST_USUARIO_IDENTIFICADOR `
101- - `TEST_USUARIO_CLAVE `
102- - `TEST_PORTAL_MIPYME_CONTRIBUYENTE_RUT `
103-
104- Para ejecutar las pruebas unitarias, debes ejecutar el siguiente código en consola desde la raíz del proyecto:
105-
106- .. code :: shell
107-
108- python tests/run.py
109-
110- Si quieres ejecutar una prueba específica, deberás especificar el nombre y ruta:
111-
112- .. code :: shell
113-
114- python tests/run.py sii.test_actividades_economicas.TestSiiActividadesEconomicas.test_listado
115-
116- Para ejecutar otros ejemplos, deberás reemplazar desde `test_actividades_economicas ` para adelante por el nombre
117- y ruta de alguna de las otras pruebas descritas posteriormente.
118-
119- A continuación se pondrán instrucciones de cómo probar el cliente de API de Python:
120-
121- * `test_actividades_economicas `:
122- * `test_listado() `:
123- - Prueba que permite obtener un listado de todas las Actividades económicas del SII por omisión.
124- - Ruta completa: `sii.test_actividades_economicas.TestSiiActividadesEconomicas.test_listado `
125- - Variables necesarias: `Ninguna `
126- - Variable de ejecución: `Ninguna `
127- * `test_listado_primera_categoria() `:
128- - Prueba que permite obtener un listado de todas las Actividades económicas de primera categoría del SII.
129- - Ruta completa: `sii.test_actividades_economicas.TestSiiActividadesEconomicas.test_listado_primera_categoria `
130- - Variables necesarias: `Ninguna `
131- - Variable de ejecución: `Ninguna `
132- * `test_listado_segunda_categoria() `:
133- - Prueba que permite obtener un listado de todas las Actividades económicas de segunda categoría del SII.
134- - Ruta completa: `sii.test_actividades_economicas.TestSiiActividadesEconomicas.test_listado_segunda_categoria `
135- - Variables necesarias: `Ninguna `
136- - Variable de ejecución: `Ninguna `
137- * `test_bhe_emitidas `:
138- * `test_documentos() `
139- - Prueba que permite obtener todas las BHE emitidas por un contribuyente.
140- - Ruta completa: `sii.test_bhe_emitidas.TestSiiBheEmitidas.test_documentos `
141- - Variables necesarias: `Ninguna `
142- - Variable de ejecución: `Ninguna `
143- * `test_pdf() `
144- - Prueba que permite obtener el PDF de una BHE emitida.
145- - Ruta completa: `sii.test_bhe_emitidas.TestSiiBheEmitidas.test_pdf `
146- - Variables necesarias: `TEST_PERIODO `
147- - Variable de ejecución: `len(documentos) `
148- * `test_emitir() `
149- - Prueba que permite emitir una BHE.
150- - Ruta completa: `sii.test_bhe_emitidas.TestSiiBheEmitidas.test_emitir `
151- - Variables necesarias: `TEST_BHE_EMITIDAS_RECEPTOR_RUT `, `TEST_BHE_EMITIDAS_FECHA_EMISION `
152- - Variable de ejecución: `TEST_BHE_EMITIDAS_RECEPTOR_RUT `
153- * `test_email() `
154- - Prueba que permite enviar un email a un destinatario con su BHE emitida.
155- - Ruta completa: `sii.test_bhe_emitidas.TestSiiBheEmitidas.test_email `
156- - Variables necesarias: `TEST_BHE_EMITIDAS_BOLETA_CODIGO `, `TEST_BHE_EMITIDAS_RECEPTOR_EMAIL `
157- - Variable de ejecución: `TEST_BHE_EMITIDAS_BOLETA_CODIGO `, `TEST_BHE_EMITIDAS_RECEPTOR_EMAIL `
158- * `test_anular() `
159- - Prueba que permite anular una BHE emitida.
160- - Ruta completa: `sii.test_bhe_emitidas.TestSiiBheEmitidas.test_anular `
161- - Variables necesarias: `TEST_BHE_EMITIDAS_BOLETA_NUMERO `
162- - Variable de ejecución: `TEST_BHE_EMITIDAS_BOLETA_NUMERO `
23+ Revisa la `documentación <https://api-client-python.docs.apigateway.cl >`_ de la biblioteca para más información, sus características y detalles de su uso.
16324
16425Licencia
16526--------
0 commit comments