Skip to content
Snippets Groups Projects
Commit b2109faa authored by Jorge Moratinos's avatar Jorge Moratinos
Browse files

Merge branch 'OCF-Doc13-changes-in-postman' into 'develop'

Ocf doc13 changes in postman

See merge request !14
parents 31e94329 98a3fbaf
No related branches found
No related tags found
1 merge request!14Ocf doc13 changes in postman
Pipeline #8812 passed
{ {
"info": { "info": {
"_postman_id": "b512e528-4b13-4be2-aed2-a61a8381360e", "_postman_id": "5fe9117c-4ab3-4170-b7f0-6ac0e08e3320",
"name": "CAPIF", "name": "CAPIF",
"schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json", "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json",
"_exporter_id": "31608242", "_exporter_id": "31608242",
"_collection_link": "https://red-comet-993867.postman.co/workspace/Team-Workspace~bfc7c442-a60c-4bb1-8730-fdabc2df89b9/collection/31608242-b512e528-4b13-4be2-aed2-a61a8381360e?action=share&source=collection_link&creator=31608242" "_collection_link": "https://red-comet-993867.postman.co/workspace/Team-Workspace~bfc7c442-a60c-4bb1-8730-fdabc2df89b9/collection/31608242-5fe9117c-4ab3-4170-b7f0-6ac0e08e3320?action=share&source=collection_link&creator=31608242"
}, },
"item": [ "item": [
{ {
...@@ -251,7 +251,7 @@ ...@@ -251,7 +251,7 @@
} }
], ],
"protocolProfileBehavior": { "protocolProfileBehavior": {
"strictSSL": true "strictSSL": false
}, },
"request": { "request": {
"auth": { "auth": {
...@@ -283,11 +283,12 @@ ...@@ -283,11 +283,12 @@
} }
}, },
"url": { "url": {
"raw": "https://{{CAPIF_HOSTNAME}}/{{ONBOARDING_URL}}", "raw": "https://{{CAPIF_HOSTNAME}}:{{CAPIF_PORT}}/{{ONBOARDING_URL}}",
"protocol": "https", "protocol": "https",
"host": [ "host": [
"{{CAPIF_HOSTNAME}}" "{{CAPIF_HOSTNAME}}"
], ],
"port": "{{CAPIF_PORT}}",
"path": [ "path": [
"{{ONBOARDING_URL}}" "{{ONBOARDING_URL}}"
] ]
...@@ -320,7 +321,8 @@ ...@@ -320,7 +321,8 @@
"", "",
"" ""
], ],
"type": "text/javascript" "type": "text/javascript",
"packages": {}
} }
}, },
{ {
...@@ -329,7 +331,8 @@ ...@@ -329,7 +331,8 @@
"exec": [ "exec": [
"" ""
], ],
"type": "text/javascript" "type": "text/javascript",
"packages": {}
} }
} }
], ],
...@@ -351,7 +354,7 @@ ...@@ -351,7 +354,7 @@
], ],
"body": { "body": {
"mode": "raw", "mode": "raw",
"raw": "\n{\n \"apiName\": \"hello_api_demo_v2\",\n \"aefProfiles\": [\n {\n \"aefId\": \"{{AEF_ID}}\",\n \"versions\": [\n {\n \"apiVersion\": \"v1\",\n \"expiry\": \"2021-11-30T10:32:02.004Z\",\n \"resources\": [\n {\n \"resourceName\": \"hello-endpoint\",\n \"commType\": \"REQUEST_RESPONSE\",\n \"uri\": \"/hello\",\n \"custOpName\": \"string\",\n \"operations\": [\n \"POST\"\n ],\n \"description\": \"Endpoint to receive a welcome message\"\n }\n ],\n \"custOperations\": [\n {\n \"commType\": \"REQUEST_RESPONSE\",\n \"custOpName\": \"string\",\n \"operations\": [\n \"POST\"\n ],\n \"description\": \"string\"\n }\n ]\n }\n ],\n \"protocol\": \"HTTP_1_1\",\n \"dataFormat\": \"JSON\",\n \"securityMethods\": [\"Oauth\"],\n \"interfaceDescriptions\": [\n {\n \"ipv4Addr\": \"localhost\",\n \"port\": 8088,\n \"securityMethods\": [\"Oauth\"]\n }\n ]\n }\n ],\n \"description\": \"Hello api services\",\n \"supportedFeatures\": \"fffff\",\n \"shareableInfo\": {\n \"isShareable\": true,\n \"capifProvDoms\": [\n \"string\"\n ]\n },\n \"serviceAPICategory\": \"string\",\n \"apiSuppFeats\": \"fffff\",\n \"pubApiPath\": {\n \"ccfIds\": [\n \"string\"\n ]\n },\n \"ccfId\": \"string\"\n }", "raw": "\n{\n \"apiName\": \"hello_api_demo_v2\",\n \"aefProfiles\": [\n {\n \"aefId\": \"{{AEF_ID}}\",\n \"versions\": [\n {\n \"apiVersion\": \"v1\",\n \"expiry\": \"2021-11-30T10:32:02.004Z\",\n \"resources\": [\n {\n \"resourceName\": \"hello-endpoint\",\n \"commType\": \"REQUEST_RESPONSE\",\n \"uri\": \"/hello\",\n \"custOpName\": \"string\",\n \"operations\": [\n \"POST\"\n ],\n \"description\": \"Endpoint to receive a welcome message\"\n }\n ],\n \"custOperations\": [\n {\n \"commType\": \"REQUEST_RESPONSE\",\n \"custOpName\": \"string\",\n \"operations\": [\n \"POST\"\n ],\n \"description\": \"string\"\n }\n ]\n }\n ],\n \"protocol\": \"HTTP_1_1\",\n \"dataFormat\": \"JSON\",\n \"securityMethods\": [\"OAUTH\"],\n \"interfaceDescriptions\": [\n {\n \"ipv4Addr\": \"localhost\",\n \"port\": 8088,\n \"securityMethods\": [\"OAUTH\"]\n }\n ]\n }\n ],\n \"description\": \"Hello api services\",\n \"supportedFeatures\": \"fffff\",\n \"shareableInfo\": {\n \"isShareable\": true,\n \"capifProvDoms\": [\n \"string\"\n ]\n },\n \"serviceAPICategory\": \"string\",\n \"apiSuppFeats\": \"fffff\",\n \"pubApiPath\": {\n \"ccfIds\": [\n \"string\"\n ]\n },\n \"ccfId\": \"string\"\n }",
"options": { "options": {
"raw": { "raw": {
"language": "json" "language": "json"
...@@ -359,11 +362,12 @@ ...@@ -359,11 +362,12 @@
} }
}, },
"url": { "url": {
"raw": "https://{{CAPIF_HOSTNAME}}/published-apis/v1/{{APF_ID}}/service-apis", "raw": "https://{{CAPIF_HOSTNAME}}:{{CAPIF_PORT}}/published-apis/v1/{{APF_ID}}/service-apis",
"protocol": "https", "protocol": "https",
"host": [ "host": [
"{{CAPIF_HOSTNAME}}" "{{CAPIF_HOSTNAME}}"
], ],
"port": "{{CAPIF_PORT}}",
"path": [ "path": [
"published-apis", "published-apis",
"v1", "v1",
...@@ -461,11 +465,12 @@ ...@@ -461,11 +465,12 @@
} }
}, },
"url": { "url": {
"raw": "https://{{CAPIF_HOSTNAME}}/{{ONBOARDING_URL_INVOKER}}", "raw": "https://{{CAPIF_HOSTNAME}}:{{CAPIF_PORT}}/{{ONBOARDING_URL_INVOKER}}",
"protocol": "https", "protocol": "https",
"host": [ "host": [
"{{CAPIF_HOSTNAME}}" "{{CAPIF_HOSTNAME}}"
], ],
"port": "{{CAPIF_PORT}}",
"path": [ "path": [
"{{ONBOARDING_URL_INVOKER}}" "{{ONBOARDING_URL_INVOKER}}"
] ]
...@@ -498,7 +503,8 @@ ...@@ -498,7 +503,8 @@
"", "",
"" ""
], ],
"type": "text/javascript" "type": "text/javascript",
"packages": {}
} }
}, },
{ {
...@@ -518,7 +524,8 @@ ...@@ -518,7 +524,8 @@
" });", " });",
"}" "}"
], ],
"type": "text/javascript" "type": "text/javascript",
"packages": {}
} }
} }
], ],
...@@ -549,11 +556,12 @@ ...@@ -549,11 +556,12 @@
} }
}, },
"url": { "url": {
"raw": "https://{{CAPIF_HOSTNAME}}/{{DISCOVER_URL}}{{INVOKER_ID}}", "raw": "https://{{CAPIF_HOSTNAME}}:{{CAPIF_PORT}}/{{DISCOVER_URL}}{{INVOKER_ID}}",
"protocol": "https", "protocol": "https",
"host": [ "host": [
"{{CAPIF_HOSTNAME}}" "{{CAPIF_HOSTNAME}}"
], ],
"port": "{{CAPIF_PORT}}",
"path": [ "path": [
"{{DISCOVER_URL}}{{INVOKER_ID}}" "{{DISCOVER_URL}}{{INVOKER_ID}}"
] ]
...@@ -586,7 +594,8 @@ ...@@ -586,7 +594,8 @@
"", "",
"" ""
], ],
"type": "text/javascript" "type": "text/javascript",
"packages": {}
} }
}, },
{ {
...@@ -595,7 +604,8 @@ ...@@ -595,7 +604,8 @@
"exec": [ "exec": [
"" ""
], ],
"type": "text/javascript" "type": "text/javascript",
"packages": {}
} }
} }
], ],
...@@ -617,7 +627,7 @@ ...@@ -617,7 +627,7 @@
], ],
"body": { "body": {
"mode": "raw", "mode": "raw",
"raw": "{\n \"securityInfo\": [\n {\n \"prefSecurityMethods\": [\n \"Oauth\"\n ],\n \"authenticationInfo\": \"string\",\n \"authorizationInfo\": \"string\",\n \"aefId\": \"{{API_AEF_ID}}\",\n \"apiId\": \"{{API_SERVICE_ID}}\"\n }\n ],\n \"notificationDestination\": \"https://mynotificationdest.com\",\n \"requestTestNotification\": true,\n \"websockNotifConfig\": {\n \"websocketUri\": \"string\",\n \"requestWebsocketUri\": true\n },\n \"supportedFeatures\": \"fff\"\n}", "raw": "{\n \"securityInfo\": [\n {\n \"prefSecurityMethods\": [\n \"OAUTH\"\n ],\n \"authenticationInfo\": \"string\",\n \"authorizationInfo\": \"string\",\n \"aefId\": \"{{API_AEF_ID}}\",\n \"apiId\": \"{{API_SERVICE_ID}}\"\n }\n ],\n \"notificationDestination\": \"https://mynotificationdest.com\",\n \"requestTestNotification\": true,\n \"websockNotifConfig\": {\n \"websocketUri\": \"string\",\n \"requestWebsocketUri\": true\n },\n \"supportedFeatures\": \"fff\"\n}",
"options": { "options": {
"raw": { "raw": {
"language": "json" "language": "json"
...@@ -625,11 +635,12 @@ ...@@ -625,11 +635,12 @@
} }
}, },
"url": { "url": {
"raw": "https://{{CAPIF_HOSTNAME}}/capif-security/v1/trustedInvokers/{{INVOKER_ID}}", "raw": "https://{{CAPIF_HOSTNAME}}:{{CAPIF_PORT}}/capif-security/v1/trustedInvokers/{{INVOKER_ID}}",
"protocol": "https", "protocol": "https",
"host": [ "host": [
"{{CAPIF_HOSTNAME}}" "{{CAPIF_HOSTNAME}}"
], ],
"port": "{{CAPIF_PORT}}",
"path": [ "path": [
"capif-security", "capif-security",
"v1", "v1",
...@@ -665,7 +676,8 @@ ...@@ -665,7 +676,8 @@
"", "",
"" ""
], ],
"type": "text/javascript" "type": "text/javascript",
"packages": {}
} }
}, },
{ {
...@@ -677,7 +689,8 @@ ...@@ -677,7 +689,8 @@
" pm.environment.set('NETAPP_SERVICE_TOKEN', res.access_token);", " pm.environment.set('NETAPP_SERVICE_TOKEN', res.access_token);",
"}" "}"
], ],
"type": "text/javascript" "type": "text/javascript",
"packages": {}
} }
} }
], ],
...@@ -724,11 +737,12 @@ ...@@ -724,11 +737,12 @@
] ]
}, },
"url": { "url": {
"raw": "https://{{CAPIF_HOSTNAME}}/capif-security/v1/securities/{{INVOKER_ID}}/token", "raw": "https://{{CAPIF_HOSTNAME}}:{{CAPIF_PORT}}/capif-security/v1/securities/{{INVOKER_ID}}/token",
"protocol": "https", "protocol": "https",
"host": [ "host": [
"{{CAPIF_HOSTNAME}}" "{{CAPIF_HOSTNAME}}"
], ],
"port": "{{CAPIF_PORT}}",
"path": [ "path": [
"capif-security", "capif-security",
"v1", "v1",
...@@ -789,7 +803,7 @@ ...@@ -789,7 +803,7 @@
], ],
"body": { "body": {
"mode": "raw", "mode": "raw",
"raw": "{\n\"name\": {{USER_NAME}}\n}", "raw": "{\n\"name\": \"{{USER_NAME}}\"\n}",
"options": { "options": {
"raw": { "raw": {
"language": "json" "language": "json"
...@@ -829,7 +843,8 @@ ...@@ -829,7 +843,8 @@
" });", " });",
" }, 5000);" " }, 5000);"
], ],
"type": "text/javascript" "type": "text/javascript",
"packages": {}
} }
} }
], ],
...@@ -843,11 +858,12 @@ ...@@ -843,11 +858,12 @@
"method": "DELETE", "method": "DELETE",
"header": [], "header": [],
"url": { "url": {
"raw": "https://{{CAPIF_HOSTNAME}}/{{ONBOARDING_URL}}/{{PROVIDER_ID}}", "raw": "https://{{CAPIF_HOSTNAME}}:{{CAPIF_PORT}}/{{ONBOARDING_URL}}/{{PROVIDER_ID}}",
"protocol": "https", "protocol": "https",
"host": [ "host": [
"{{CAPIF_HOSTNAME}}" "{{CAPIF_HOSTNAME}}"
], ],
"port": "{{CAPIF_PORT}}",
"path": [ "path": [
"{{ONBOARDING_URL}}", "{{ONBOARDING_URL}}",
"{{PROVIDER_ID}}" "{{PROVIDER_ID}}"
...@@ -878,7 +894,8 @@ ...@@ -878,7 +894,8 @@
" });", " });",
" }, 5000);" " }, 5000);"
], ],
"type": "text/javascript" "type": "text/javascript",
"packages": {}
} }
} }
], ],
...@@ -892,11 +909,12 @@ ...@@ -892,11 +909,12 @@
"method": "DELETE", "method": "DELETE",
"header": [], "header": [],
"url": { "url": {
"raw": "https://{{CAPIF_HOSTNAME}}/{{ONBOARDING_URL_INVOKER}}/{{INVOKER_ID}}", "raw": "https://{{CAPIF_HOSTNAME}}:{{CAPIF_PORT}}/{{ONBOARDING_URL_INVOKER}}/{{INVOKER_ID}}",
"protocol": "https", "protocol": "https",
"host": [ "host": [
"{{CAPIF_HOSTNAME}}" "{{CAPIF_HOSTNAME}}"
], ],
"port": "{{CAPIF_PORT}}",
"path": [ "path": [
"{{ONBOARDING_URL_INVOKER}}", "{{ONBOARDING_URL_INVOKER}}",
"{{INVOKER_ID}}" "{{INVOKER_ID}}"
......
{ {
"id": "872bffef-37ef-4a25-afa8-6a61de256f4b", "id": "7111197e-e9c8-4988-a519-3284ab9021a9",
"name": "CAPIF", "name": "CAPIF",
"values": [ "values": [
{ {
...@@ -10,7 +10,7 @@ ...@@ -10,7 +10,7 @@
}, },
{ {
"key": "CAPIF_PORT", "key": "CAPIF_PORT",
"value": "8080", "value": "443",
"type": "default", "type": "default",
"enabled": true "enabled": true
}, },
...@@ -262,6 +262,6 @@ ...@@ -262,6 +262,6 @@
} }
], ],
"_postman_variable_scope": "environment", "_postman_variable_scope": "environment",
"_postman_exported_at": "2024-06-26T11:17:13.183Z", "_postman_exported_at": "2024-07-30T07:59:01.623Z",
"_postman_exported_using": "Postman/11.2.13" "_postman_exported_using": "Postman/11.3.2"
} }
\ No newline at end of file
File added
# Postman # Postman
In this section we can use Postman to publish an API as a provider and use it as an invoker.
This section shows how OpenCAPIF is used through requests made with Postman, from the creation of a provider together with the publication of an api, to the creation of an invoker and the consumption of the published api. Everything you need to run the test is in <a href="./Postman-Test.zip" download>Postman-Test.zip</a>.
## Requisites ## Requisites
...@@ -14,7 +15,7 @@ In this section we can use Postman to publish an API as a provider and use it as ...@@ -14,7 +15,7 @@ In this section we can use Postman to publish an API as a provider and use it as
npm i npm i
``` ```
1. Run the <a href="./script.js" download>script.js</a> with the following command: 2. Run the <a href="./script.js" download>script.js</a> with the following command:
``` ```
node script.js node script.js
...@@ -22,6 +23,11 @@ node script.js ...@@ -22,6 +23,11 @@ node script.js
3. Import Postman collection and environment variables (<a href="./CAPIF.postman_collection.json" download>CAPIF.postman_collection.json</a> and <a href="./CAPIF.postman_environment.json" download>CAPIF.postman_environment.json</a>) 3. Import Postman collection and environment variables (<a href="./CAPIF.postman_collection.json" download>CAPIF.postman_collection.json</a> and <a href="./CAPIF.postman_environment.json" download>CAPIF.postman_environment.json</a>)
4. Select CAPIF Environment before start testing. 4. Select CAPIF Environment before start testing.
5. Install the necessary dependencies from requirements.txt using the following command:
```
pip install -r requirements.txt
```
## Remote CAPIF ## Remote CAPIF
...@@ -67,6 +73,8 @@ The next step is to register a provider using the user created by the administra ...@@ -67,6 +73,8 @@ The next step is to register a provider using the user created by the administra
![Flow](../../images/flows/04_AEF_API_Provider_registration.png) ![Flow](../../images/flows/04_AEF_API_Provider_registration.png)
#### **05-publish_api**
At this point we move on to using certificate authentication in CAPIF. In Postman it is necessary to add the certificates manually and using more than one certificate for the same host as we do in CAPIF complicates things. For this reason, we use the script to overwrite a certificate and a key when it is necessary to have a specific one. At this point we move on to using certificate authentication in CAPIF. In Postman it is necessary to add the certificates manually and using more than one certificate for the same host as we do in CAPIF complicates things. For this reason, we use the script to overwrite a certificate and a key when it is necessary to have a specific one.
To configure go to **settings** in Postman and open the **certificates** section. To configure go to **settings** in Postman and open the **certificates** section.
...@@ -77,8 +85,6 @@ To configure go to **settings** in Postman and open the **certificates** section ...@@ -77,8 +85,6 @@ To configure go to **settings** in Postman and open the **certificates** section
Once this is done, the node script will be in charge of changing the certificate that is necessary in each request. Once this is done, the node script will be in charge of changing the certificate that is necessary in each request.
#### **05-publish_api**
![Flow](../../images/flows/05_AEF_Publish.png) ![Flow](../../images/flows/05_AEF_Publish.png)
Once the api is published, we can start it. In this case we have a test one created in python called <a href="./hello_api.py" download>hello_api.py</a> that can be executed with the following command: Once the api is published, we can start it. In this case we have a test one created in python called <a href="./hello_api.py" download>hello_api.py</a> that can be executed with the following command:
...@@ -103,10 +109,10 @@ Finally, we will create an invoker with the user given by the administrator to b ...@@ -103,10 +109,10 @@ Finally, we will create an invoker with the user given by the administrator to b
![Flow](../../images/flows/07_Invoker_Onboarding.png) ![Flow](../../images/flows/07_Invoker_Onboarding.png)
At this point we move on to using certificate authentication in CAPIF. **If you did not configure the provider's certificates, you would have to do it now**.
#### **08-discover** #### **08-discover**
At this point we move on to using certificate authentication in CAPIF. **If you did not configure the provider's certificates, you would have to do it now**.
![Flow](../../images/flows/08_Invoker_Discover_AEF.png) ![Flow](../../images/flows/08_Invoker_Discover_AEF.png)
#### **09-security_context** #### **09-security_context**
......
Flask == 3.0.3
flask_jwt_extended == 4.6.0
pyopenssl == 24.1.0
pyone
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment