Changes for page Libertya REST API - Manual para desarrolladores
Last modified by admin on 2026/07/18 17:44
Summary
-
Page properties (1 modified, 0 added, 0 removed)
-
Attachments (0 modified, 2 added, 0 removed)
Details
- Page properties
-
- Content
-
... ... @@ -34,7 +34,7 @@ 34 34 35 35 El archivo **src/main/resources/ly-rest-api.yaml** es el punto de inicio para la ampliacion de operaciones. En dicho archivo se definen los paths a los distintos archivos que contienen los end-points: 36 36 37 -**paths**:\\/v1.0/products:\\$ref: ./paths/products.yaml\\/v1.0/products/{id}:\\$ref: ./paths/products_id.yaml\\/v1.0/bpartners:\\$ref: ./paths/bpartners.yaml\\/v1.0/bpartners/{id}:\\$ref: ./paths/bpartners_id.yaml\\/v1.0/invoices:\\$ref: ./paths/invoices.yaml\\/v1.0/invoices/{id}:\\$ref: ./paths/invoices_id.yaml\\/v1.0/invoices/{id}/process:\\$ref: ./paths/invoices_id_process.yaml 37 +**paths**:\\/v1.0/products:\\~$ref: ./paths/products.yaml\\/v1.0/products/{id}:\\~$ref: ./paths/products_id.yaml\\/v1.0/bpartners:\\~$ref: ./paths/bpartners.yaml\\/v1.0/bpartners/{id}:\\~$ref: ./paths/bpartners_id.yaml\\/v1.0/invoices:\\~$ref: ./paths/invoices.yaml\\/v1.0/invoices/{id}:\\~$ref: ./paths/invoices_id.yaml\\/v1.0/invoices/{id}/process:\\~$ref: ./paths/invoices_id_process.yaml 38 38 39 39 En general, para un tipo de entidad tendremos 2 entradas, por ejemplo: 40 40 ... ... @@ -48,13 +48,13 @@ 48 48 **NOTA**: Existirá una tercera entrada en ciertos casos, para procesamiento de entidades de tipo documento (pedidos, facturas, remitos, etc.), por ejemplo: 49 49 50 50 *. **/v1.0/invoices/{id}/process:** 51 -**. $ref: ./paths/invoices_id_process.yaml 51 +**. ~$ref: ./paths/invoices_id_process.yaml 52 52 53 53 === Definición de end-points {{id name="definición-de-end-points" /}}=== 54 54 55 55 Los archivos **src/main/resources/paths/*.yaml** contienen los endpoints para cada una de las entidades sobre las cuales operar, por ejemplo **bpartners.yaml** / **bpartners_id.yaml**: 56 56 57 -**get**:\\tags:\\- “bpartner”\\summary: Recupera una entidad comercial en particular\\parameters:\\- name: id\\in: path\\description: ID de la entidad comercial\\required: true\\schema:\\type: integer\\description: Recupera la informacion de una entidad comercial en particular\\operationId: retrieveBPartner\\responses:\\“200”:\\description: OK\\content:\\application/json:\\schema:\\$ref: ‘../model/bpartner.yaml#/components/schemas/BPartner’\\… 57 +**get**:\\tags:\\- “bpartner”\\summary: Recupera una entidad comercial en particular\\parameters:\\- name: id\\in: path\\description: ID de la entidad comercial\\required: true\\schema:\\type: integer\\description: Recupera la informacion de una entidad comercial en particular\\operationId: retrieveBPartner\\responses:\\“200”:\\description: OK\\content:\\application/json:\\schema:\\~$ref: ‘../model/bpartner.yaml#/components/schemas/BPartner’\\… 58 58 59 59 === Definición de schemas {{id name="definición-de-schemas" /}}=== 60 60 ... ... @@ -70,7 +70,7 @@ 70 70 71 71 **NOTA**: Dentro de **src/main/resources/model** existen también los archivos ***_doc.yaml** (por ejemplo **invoice_doc.yaml** o **order_doc.yaml**), los cuales no son autogenerados. Estos archivos representan una estructura más amplia que una entidad, o sea un documento que abarca varias entidades. Por ejemplo una factura abarcará sus líneas y sus impuestos: 72 72 73 -components:\\schemas:\\**InvoiceDocument**:\\type: object\\properties:\\**header**:\\$ref: ‘../model/invoice.yaml#/components/schemas/Invoice’\\**lines**:\\type: array\\items:\\$ref: ‘../model/invoiceline.yaml#/components/schemas/InvoiceLine’\\**taxes**:\\type: array\\items:\\$ref: ‘../model/invoicetax.yaml#/components/schemas/InvoiceTax’ 73 +components:\\schemas:\\**InvoiceDocument**:\\type: object\\properties:\\**header**:\\~$ref: ‘../model/invoice.yaml#/components/schemas/Invoice’\\**lines**:\\type: array\\items:\\~$ref: ‘../model/invoiceline.yaml#/components/schemas/InvoiceLine’\\**taxes**:\\type: array\\items:\\~$ref: ‘../model/invoicetax.yaml#/components/schemas/InvoiceTax’ 74 74 75 75 Notar que la definición de **invoice_doc.yaml** se apoya en los archivos yaml de modelo autogenerados. 76 76 ... ... @@ -126,7 +126,7 @@ 126 126 127 127 El primer paso es incluir a los nuevos paths relacionados con la gestión de remitos en el archivo **ly-rest-api.yaml**: 128 128 129 -/v1.0/inouts:\\$ref: ./paths/inouts.yaml\\/v1.0/inouts/{id}:\\$ref: ./paths/inouts_id.yaml\\/v1.0/inouts/{id}/process:\\$ref: ./paths/inouts_id_process.yaml 129 +/v1.0/inouts:\\~$ref: ./paths/inouts.yaml\\/v1.0/inouts/{id}:\\~$ref: ./paths/inouts_id.yaml\\/v1.0/inouts/{id}/process:\\~$ref: ./paths/inouts_id_process.yaml 130 130 131 131 == Ampliación de endpoints {{id name="ampliación-de-endpoints" /}}== 132 132 ... ... @@ -161,7 +161,7 @@ 161 161 162 162 Para entidades de tipo documento, se debe crear manualmente el descriptor de schema **src/main/resources/model/inout_doc.yaml** el cual abarca la cabecera y las lineas: 163 163 164 -components:\\schemas:\\**InOutDocument**:\\type: object\\properties:\\**header**:\\$ref: ‘../model/inout.yaml#/components/schemas/InOut’\\**lines**:\\type: array\\items:\\$ref: ‘../model/inoutline.yaml#/components/schemas/InOutLine’ 164 +components:\\schemas:\\**InOutDocument**:\\type: object\\properties:\\**header**:\\~$ref: ‘../model/inout.yaml#/components/schemas/InOut’\\**lines**:\\type: array\\items:\\~$ref: ‘../model/inoutline.yaml#/components/schemas/InOutLine’ 165 165 166 166 == Generación de clases {{id name="generación-de-clases" /}}== 167 167 ... ... @@ -320,9 +320,9 @@ 320 320 321 321 El proyecto cuenta con el script **DockerCreateImage.sh** que genera una imagen de la aplicación apoyada en **OpenJDK 8**. 322 322 323 -usuario@pc-usuario:~~/workspace/org.libertya.api$ **./DockerCreateImage.sh**\\BUILD SUCCESSFUL in 2s\\7 actionable tasks: 7 up-to-date\\[+] Building 2.0s (7/7) FINISHED\\=> [internal] load .dockerignore 0.1s\\=> => transferring context: 2B 0.0s\\=> [internal] load build definition from Dockerfile 0.1s\\=> => transferring dockerfile: 172B 0.0s\\=> [internal] load metadata for docker.io/library/openjdk:8-jdk-alpine 0.0s\\=> [internal] load build context 0.7s\\=> => transferring context: 67.80MB 0.6s\\=> [1/2] FROM docker.io/library/openjdk:8-jdk-alpine 0.1s\\=> [2/2] COPY build/libs/lyrestapi-1.0.0.jar lyrestapi-1.0.0.jar 0.6s\\=> exporting to image 0.5s\\=> => exporting layers 0.5s\\=> => writing image sha256:b155879ce2ab4dc1c89b6a287753435ba69aae268bc7c818a0e5bbce4e9192c3 0.0s\\=> => naming to docker.io/library/lyrestapi 0.0s 323 +usuario@pc-usuario:~~/workspace/org.libertya.api~$ **./DockerCreateImage.sh**\\BUILD SUCCESSFUL in 2s\\7 actionable tasks: 7 up-to-date\\[+] Building 2.0s (7/7) FINISHED\\=> [internal] load .dockerignore 0.1s\\=> => transferring context: 2B 0.0s\\=> [internal] load build definition from Dockerfile 0.1s\\=> => transferring dockerfile: 172B 0.0s\\=> [internal] load metadata for docker.io/library/openjdk:8-jdk-alpine 0.0s\\=> [internal] load build context 0.7s\\=> => transferring context: 67.80MB 0.6s\\=> [1/2] FROM docker.io/library/openjdk:8-jdk-alpine 0.1s\\=> [2/2] COPY build/libs/lyrestapi-1.0.0.jar lyrestapi-1.0.0.jar 0.6s\\=> exporting to image 0.5s\\=> => exporting layers 0.5s\\=> => writing image sha256:b155879ce2ab4dc1c89b6a287753435ba69aae268bc7c818a0e5bbce4e9192c3 0.0s\\=> => naming to docker.io/library/lyrestapi 0.0s 324 324 325 -usuario@pc-usuario:~~/workspace/org.libertya.api$ **docker images**\\REPOSITORY TAG IMAGE ID CREATED SIZE\\**lyrestapi** latest b155879ce2ab About a minute ago 173MB 325 +usuario@pc-usuario:~~/workspace/org.libertya.api~$ **docker images**\\REPOSITORY TAG IMAGE ID CREATED SIZE\\**lyrestapi** latest b155879ce2ab About a minute ago 173MB 326 326 327 327 = Uso {{id name="uso" /}}= 328 328
- image2.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +xwiki:XWiki.admin - Size
-
... ... @@ -1,0 +1,1 @@ 1 +41.6 KB - Content
- image3.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +xwiki:XWiki.admin - Size
-
... ... @@ -1,0 +1,1 @@ 1 +54.3 KB - Content