Skip to content

Commit

Permalink
Merge pull request #5 from Axway/1.7-update
Browse files Browse the repository at this point in the history
1.7 update
  • Loading branch information
ThierryMa authored Jul 11, 2024
2 parents 8fccddf + bd242d1 commit 00abe64
Show file tree
Hide file tree
Showing 18 changed files with 125 additions and 85 deletions.
65 changes: 39 additions & 26 deletions apification/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -161,18 +161,19 @@ In this lab, we'll create our integration and define the REST API endpoint using
* Select HTTPS for the Protocol and leave Authentication to None for now and click on Update \
![HTTPS server connection](images/lab2-https-server-connection.png)
* Close the connection sub tab and go back to the HTTP/S Server component in the integration, refresh the connection list and select the connection you have just created.
* Enter `invoices` for the resource path and enter two Query Parameters: `status` and `currencycode` and press Save. The resource path must be unique for your tenant. Since you are most likely working in a shared environment, you may want to prefix the resource path with your initials to make it unique (e.g. lb_invoices) \
* Enter `invoices` for the resource path and enter two Query Parameters: `status` and `currencycode` and press Save.
> Note that the resource path must be unique for your tenant. Since you are most likely working in a shared environment, you may want to prefix the resource path with your initials to make it unique (e.g. lb_invoices) \
![HTTPS Server component](images/lab2-https-server-component.png)
> Note that we still need to connect the response to the HTTP/S Server component but we'll do that shortly after we've defined the response variable
* Click the plus button to add a Database Select component and expand the bottom panel
* Click the `+` button to add a Database Select component and expand the bottom panel
* We need to create a database connection for our Postgres database so click Add next to the Connection picker and give your connection a name and description (e.g. Neon Postgres DB)
* Select PostgreSQL as Database Type and set the version you used for the database creation (default is 15.x)
* Update the connection URL with jdbc:postgresql://_`server`_/_`databaseName`_ with `host` and `database name` that you wrote down after database creation (default postgresql port 5432 is not required in the URL)
* Enter your User Name and Passwordthat you wrote down after database creation
* click on Update and then on Test \
![database connection](images/lab2-database-connection.png)
> Note that if you get any Connection Timeout errors with the connection then you may want to expand the Advanced section and set `Connection Wait Timeout` to 1000. Don't forget to click update.
* Close your connection sub tab and return the the Database Select component in your integration
* Close your connection sub tab and return to the Database Select component in your integration
* Click refresh in the Connections tab and select the database connection you just created
* We need a plug for selecting invoices by Status so click Add next to the Plug picker and give your plug a name and description (e.g. GetInvoicesByStatus) and click on the Configure button
* Select the database connector you just created and select `Select` for the Actions and `public` for the schemas
Expand Down Expand Up @@ -229,17 +230,17 @@ Your integration should look like this: \
![integration](images/lab2-integration.png)

* Enable your integration and make an API call from your Browser, Postman or curl as follows:

```bash
curl --location --request GET "https://<dataplane-hostname>:9443/invoices?status=Overdue&currencycode=EUR"
```

> Note: The _dataplane hostname_ of the Design mode (in SaaS deployment) is:\
> _**tenant-name**-design.prod.integration.**region**.axway.com_\
> where _tenant-name_ and _region_ can be found in the current control plane URL that you are using so far.
> Tip: Make sure to update the resource path "/invoices" to match what you defined.
> Mouse over the link icon to see the URL you need for the API call and copy the link

![alt text](images/image.png)
> Note that resource path might be different from "/invoices" according to what you defined

> Paste the URL you copy in your Browser, or in Postman or in a curl command , add the query parameter values for our use case (set the status query parameter to 'Overdue' and the currencycode query parameter is 'EUR', so your resource path with query params would be "/invoices?status=Overdue&currencycode=EUR") before sending the request
![API Call](images/APIcall.png)
> Note: The response would be empty for now, so ignore "empty response" error message from your browser or client.

* Find your transaction in the Monitor and click on the Database Select step and expand `GetInvoicesByStatusOutput->resultSet` and see that you are retrieving invoices
Expand All @@ -250,7 +251,7 @@ Your integration should look like this: \
In this lab, we'll loop over the invoices, parse each one to a JSON object and do a currency conversion on the invoice amount to a desired currency passed into the API call as a query parameter.

* Disable your integration
* Click the plus button and add a For-each component, expand it and click on Config
* Click the `+` button and add a For-each component, expand it and click on Config
* Click the down arrow and select the `GetInvoicesByStatusOutput->response->resultSet` array to loop over and click Save
![foreach configuration](images/lab3-foreach-configuration_.png)
* Let's convert the invoice total amount to the desired currency using the APILayer currency conversion API.
Expand Down Expand Up @@ -300,13 +301,19 @@ In this lab, we'll loop over the invoices, parse each one to a JSON object and d

* Enable your integration and make an API call from the Browser, Postman or curl as follows:

```bash
curl --location --request GET 'https://<dataplane-hostname>:9443/invoices?status=Overdue&currencycode=EUR'
```
> Mouse over the link icon to see the URL you need for the API call and copy the link

![alt text](images/image.png)

> Note that resource path might be different from "/invoices" according to what you defined

> Paste the URL you copy in your Browser, or in Postman or in a curl command , add the query parameter values for our use case (set the status query parameter to 'Overdue' and the currencycode query parameter is 'EUR', so your resource path with query params would be "/invoices?status=Overdue&currencycode=EUR") before sending the request

![API Call](images/APIcall.png)

* Find your transaction in the Monitor and click on it. You should see the For-each with some number inside indicating the number of invoices
![transaction monitoring](images/lab3-transaction-monitoring.png)
* Click the plus sign next to the For-each and again on one of the iterations
* Click the `+` sign next to the For-each and again on one of the iterations
* Click on the HTTP/S Client Get and then expand the HTTPSGetOutput to see the currency conversion API response
![transaction monitoring response details](images/lab3-transaction-monitoring-response-details.png)

Expand Down Expand Up @@ -335,7 +342,7 @@ In this lab, we'll map our invoice and currency converted amount to the response
* Right click on any variable on the right hand panel and select Paste and name the variable `invoiceResponse`
* Click on it expand this variable
* Expand `currencyConvertResponse` in the left hand panel
* Add a map function using the '+fx' button, select DecimalPrecision is the Math category.
* Add a map function using the '+fx' button, select DecimalPrecision in the Math category.
* Drag a line from `currencyConvertResponse->result` to `decimal`
* Set `precision` to 2
* Drag a line from `output` to `invoiceResponse->totalamt`
Expand All @@ -360,9 +367,9 @@ In this lab, we'll map our invoice and currency converted amount to the response
![map2](images/lab4-map2-AppendList.png)
* Add an AddFloats function
* Drag a line from `response->grandTotal` to `num1`
* Drag a line from `currencyConvertResponse->result` to `num2`
* Drag a line from `invoiceResponse->totalamt` to `num2`
* Drag a line from `output` to `response->grandTotal`
![map2](images/lab4-map2-AddFloats.png)
![map2](images/lab4-map2-addfloats.png)
* Complete the response fields
* Drag a line from `HTTPSServerGetOutput->queryParams->currencycode` on the left to `response->currency` on the right
* Drag a line from `HTTPSServerGetOutput->queryParams->status` on the left to `response->status` on the right
Expand All @@ -373,11 +380,17 @@ In this lab, we'll map our invoice and currency converted amount to the response
Your integration is complete and should look like this:
![integration](images/lab4-integration.png)

* Enable your integration and make an API call from the Browser, Postman or curl as follows:
* Enable your integration and make an API call from the Browser, Postman or curl with the same URL you used before as follows:

```bash
curl --location --request GET 'https://<dataplane-hostname>:9443/invoices?status=Overdue&currencycode=EUR'
```
> Mouse over the link icon to see the URL you need for the API call and copy the link

![alt text](images/image.png)

> Note that resource path might be different from "/invoices" according to what you defined

> Paste the URL you copy in your Browser, or in Postman or in a curl command , add the query parameter values for our use case (set the status query parameter to 'Overdue' and the currencycode query parameter is 'EUR', so your resource path with query params would be "/invoices?status=Overdue&currencycode=EUR") before sending the request

![API Call 2](images/APICall2.png)

Your result should look similar to the following:

Expand Down
64 changes: 39 additions & 25 deletions apification/fr/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -159,10 +159,11 @@ Dans cette étape, nous allons créer notre intégration et définir un endpoint
* Sélectionner HTTPS comme protocole et laisser None pour l'Authentication pour le moment puis cliquer sur Update
![HTTPS server connection](../images/lab2-https-server-connection.png)
* Fermer l'onglet de la connexion et retourner au composant HTTP/S Server de l'intégration, rafraîchir la liste de connexion puis sélectionner la connexion tout juste créée
* Entrer `invoices` pour le resource path (chemin d'accès à la ressource) et entrer deux Query Parameters: `status` et `currencycode` puis apuyer sur Save. Le resource path doit être unique. Étant donné que vous travaillez probablement dans un environnement partagé, vous pouvez préfixer le ressource path avec vos initiales pour le rendre unique (par exemple, lb_invoices) \
* Entrer `invoices` pour le resource path (chemin d'accès à la ressource) et entrer deux Query Parameters: `status` et `currencycode` puis apuyer sur Save.
> À noter que le resource path doit être unique. Étant donné que vous travaillez probablement dans un environnement partagé, vous pouvez préfixer le ressource path avec vos initiales pour le rendre unique (par exemple, lb_invoices) \
![HTTPS Server component](../images/lab2-https-server-component.png)
> À noter que nous avons toujours besoin de connecter la réponse au composant HTTP/S Server mais nous ferons cela juste après avoir défini la variable réponse
* Cliquer sur le bouton plus pour ajouter un composant Database Select puis agrandir le panneau inférieur
* Cliquer sur le bouton `+` pour ajouter un composant Database Select puis agrandir le panneau inférieur
* Nous devons créer une connexion Database pour notre Database Postgres. Pour cela cliquer sur Add à côté du sélecteur de connexion et donner à la connexion un nom et une description (par ex: Neon Postgres DB)
* Sélectionner PostgreSQL comme Database Type et choisir la version utilisée lors de la création de votre DatabaseSelect (la version par défaut est 15.x)
* Mettre à jour l'URL de connexion jdbc:postgresql://_`server`_/_`databaseName`_ avec `host` et `database name` que vous avez noté à l'étape précèdente après la création de la database (le port PostgreSQL par défaut 5432 n'est pas requis dans l'URL)
Expand All @@ -175,7 +176,7 @@ Dans cette étape, nous allons créer notre intégration et définir un endpoint
* Nous avons besoin d'un plug pour sélectionner les factures par statut. Pour cela cliquer sur Add à côté du sélecteur de plug et donner au plug un nom et une description (par ex: GetInvoicesByStatus) puis cliquer sur le bouton Configure
* Sélectionner le connecteur de database tout juste créée et sélectionner `Select` pour Actions et `public` pour schemas
* Cocher la case à côté de Invoice et sélectionner tous les champs
* Cliquer sur Where et sélectionner le champs `invoice.status` et l'opérateur `=` puis cliquer sur Generate et ensuite sur Save
* Cliquer sur Where et sélectionner le champ `invoice.status` et l'opérateur `=` puis cliquer sur Generate et ensuite sur Save
![database plug configuration](../images/lab2-database-plug-configuration.png)
![database plug](../images/lab2-database-plug_.png)
* Fermer l'onglet du plug et retourner au composant Database Select de l'intégration. Cliquer sur Refresh dans le selecteur de plug et choisir le plug tout juste créé
Expand Down Expand Up @@ -228,17 +229,17 @@ L'intégration doit ressembler à ceci: \

* Activer l'intégration et faire un appel API depuis un navigateur, Postman ou curl comme suit:

```bash
curl --location --request GET "https://<dataplane-hostname>:9443/invoices?status=Overdue&currencycode=EUR"
```

> Note: Le _dataplane hostname_ du mode Design (dans le déploiement SaaS) est:\
> _**tenant-name**-design.prod.integration.**region**.axway.com_\
> _tenant-name_ et _region_ peuvent être trouvés dans le control plane URL que vous utilisez
> Passer la souris sur l'icône du lien pour voir l'URL nécessaire à l'appel API et copier le lien.

![alt text](/apification/images/image.png)

> Survoler l'icône du lien pour voir l'URL nécessaire pour l'appel API et copier le lien

> Conseil: Assurez vous de mettre à jour le ressource path "/invoices" pour que cela corresponde à ce qui a été défini
> Note: La réponse sera vide pour le moment, il faudra donc ignorer le message d'erreur "empty response" de votre navigateur ou client
> Coller l'URL copiée dans le navigateur, ou dans Postman, ou dans une commande curl. Ajouter les valeurs des paramètres de requête (pour notre cas d'utilisation définir le paramètre de requête "status" à 'Overdue' et le paramètre de requête "currencycode" à 'EUR', donc le chemin de ressource avec les paramètres de requête sera "/invoices?status=Overdue&currencycode=EUR") avant d'envoyer la requête

![API Call](/apification/images/APIcall.png)

> Note : La réponse sera vide pour l'instant, ignorez donc le message d'erreur "empty response" de votre navigateur ou client

* Consulter la transaction dans le Monitor et cliquer sur l'étape Database Select puis dérouler `GetInvoicesByStatusOutput->resultSet`. Les factures ont bien été récupérées
![transaction monitoring](../images/lab2-transaction-monitoring_.png)
Expand All @@ -248,7 +249,7 @@ L'intégration doit ressembler à ceci: \
Dans cette étape, nous allons parcourir les factures, parser chacune d'entre elles dans un format JSON et effectuer une conversion du montant de la facture dans la devise souhaitée, qui sera transmise à l'appel API sous la forme d'un paramètre de requête

* Désactiver l'intégration
* Cliquer sur le bouton plus et ajouter un composant For-each, l'agrandir et cliquer sur Config
* Cliquer sur le bouton `+` et ajouter un composant For-each, l'agrandir et cliquer sur Config
* Sélectionner `GetInvoicesByStatusOutput->response->resultSet` en déroulant GetInvoicesByStatusOutput puis response, afin de boucler sur chaque élément du resultSet. Cliquer sur Save
![foreach configuration](../images/lab3-foreach-configuration_.png)
* Convertissons le montant total des factures dans la devises désirée en utilisant l'API de conversion de devises APILayer
Expand Down Expand Up @@ -297,13 +298,20 @@ Dans cette étape, nous allons parcourir les factures, parser chacune d'entre el
![integration](../images/lab3-integration_.png)

* Activer l'intégration en faisant un appel d'API depuis un navigateur, Postman, ou curl comme suit:
```bash
curl --location --request GET 'https://<dataplane-hostname>:9443/invoices?status=Overdue&currencycode=EUR'
```

> Passer la souris sur l'icône du lien pour voir l'URL nécessaire à l'appel API et copier le lien.

![alt text](/apification/images/image.png)

> Survoler l'icône du lien pour voir l'URL nécessaire pour l'appel API et copier le lien

> Coller l'URL copiée dans le navigateur, ou dans Postman, ou dans une commande curl. Ajouter les valeurs des paramètres de requête (pour notre cas d'utilisation définir le paramètre de requête "status" à 'Overdue' et le paramètre de requête "currencycode" à 'EUR', donc le chemin de ressource avec les paramètres de requête sera "/invoices?status=Overdue&currencycode=EUR") avant d'envoyer la requête

![API Call](/apification/images/APIcall.png)

* Retrouver l'intégration dans le Monitor et cliquer dessus. Un numéro doit apparaître dans le For-each indiquant le nombre de factures
![transaction monitoring](../images/lab3-transaction-monitoring.png)
* Cliquer sur le signe plus à côté du composant For-each puis cliquer sur une des itérations
* Cliquer sur le signe `+` à côté du composant For-each puis cliquer sur une des itérations
* Cliquer sur HTTP/S Client Get puis dérouler la variable HTTPSGetOutput pour voir la réponse API de la conversion de devise
![transaction monitoring response details](../images/lab3-transaction-monitoring-response-details.png)

Expand Down Expand Up @@ -357,9 +365,9 @@ Dans cette étape, nous allons mettre en correspondance (mapping) notre facture
![map2](../images/lab4-map2-AppendList.png)
* Ajouter une fonction AddFloats
* Tirer une ligne de `response->grandTotal` à `num1`
* Tirer une ligne de `InvoiceResponse->totalamnt` à `num2`
* Tirer une ligne de `InvoiceResponse->totalamt` à `num2`
* Tirer une ligne de `output` à `response->grandTotal`
![map2](../images/lab4-map2-AddFloats.png)
![map2](../images/lab4-map2-addfloats.png)
* Compléter le champ de réponse
* Tirer une ligne de `HTTPSServerGetOutput->queryParams->currencycode` sur la gauche, vers `response->currency` sur la droite
* Tirer une ligne de `HTTPSServerGetOutput->queryParams->status` sur la gauche, vers `response->status` sur la droite
Expand All @@ -370,11 +378,17 @@ Dans cette étape, nous allons mettre en correspondance (mapping) notre facture
L'intégration doit ressembler à ceci:
![integration](../images/lab4-integration.png)

* Activer l'intégration en faisant un appel API depuis un navigateur, Postman ou depuis Curl comme suit:

```bash
curl --location --request GET 'https://<dataplane-hostname>:9443/invoices?status=Overdue&currencycode=EUR'
```
* Activer l'intégration en faisant un appel API depuis un navigateur, Postman ou depuis Curl avec le même URL que précédemment comme suit:

> Passer la souris sur l'icône du lien pour voir l'URL nécessaire à l'appel API et copier le lien.

![alt text](/apification/images/image.png)

> Survoler l'icône du lien pour voir l'URL nécessaire pour l'appel API et copier le lien

> Coller l'URL copiée dans le navigateur, ou dans Postman, ou dans une commande curl. Ajouter les valeurs des paramètres de requête (pour notre cas d'utilisation définir le paramètre de requête "status" à 'Overdue' et le paramètre de requête "currencycode" à 'EUR', donc le chemin de ressource avec les paramètres de requête sera "/invoices?status=Overdue&currencycode=EUR") avant d'envoyer la requête

![API Call](/apification/images/APICall2.png)

Le résultat devrait ressembler à:

Expand Down
Binary file added apification/images/APICall2.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added apification/images/APIcall.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added apification/images/image.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading

0 comments on commit 00abe64

Please sign in to comment.