API

Définition

L'API ouverte de GoPaaS permet à des applications tierces d'interagir facilement avec la plateforme. Elle fournit un ensemble de règles et de protocoles qui autorisent l'accès aux données, facilitant ainsi l'intégration et l'extension des capacités du logiciel dans d'autres systèmes ou applications.

Avantages

Bénéfices

Pré-requis

Pour utiliser l'API GoPaaS, il licence ADMIN ou Utilisateur est nécessaire pour la gestion des connexions.

Endpoints

list

Request

Method URL
GET api/list/{{id}}/
Type Params Values
HEAD bearer_token String
HEAD (option) advancedSearch String
HEAD (option) onlyVisible String
HEAD (option) columns String
HEAD (option) page Number
HEAD (option) rowPerPage Number

Response

Status Response
200 JSON
400 {"msg":"Invalid version."}
401 {"msg":"Invalid API key."}
500 {"msg":"Something went wrong. Please try again later."}

Exemple

Avec curl.

curl -X GET \
{{URL}}/api/list/{{id}}/
-H 'Authorization: Bearer {{bearer_token}}' \
-H 'content-type: application/json' \
-H 'advancedSearch: nom|contain|NIDS|' \
-H 'onlyVisible: on' \
-H 'colums: on' \
-H 'page: 3' \
-H 'rowPerPage: 10'

item

Request

Method URL
GET api/item/tableName/{{id}}/
Type Params Values
HEAD bearer_token String

Response

Status Response
200 JSON
400 {"msg":"Invalid version."}
401 {"msg":"Invalid API key."}
500 {"msg":"Something went wrong. Please try again later."}

Exemple

Avec curl.

curl -X GET \
{{URL}}/api/list/{{id}}/
curl -X POST \
{{URL}}/api/item/{{tableName}}/{{id}}/
-H "Authorization: Bearer {{bearer_token}}" \
-H 'content-type: application/json'

items

Request

Method URL
POST api/items/tableName/
Type Params Values
HEAD bearer_token String
POST data JSON

Response

Status Response
200 JSON
400 {"msg":"Invalid version."}
401 {"msg":"Invalid API key."}
500 {"msg":"Something went wrong. Please try again later."}

Exemple

Avec curl.

curl -X POST \

  {{URL}}/api/items/{{tableName}}/
-H "Authorization: Bearer {{access_token}}" \
-H 'content-type: application/json' \
-d '[{
"cle": "{{key}}",
"num_commande": "551035",
"date_billed": "2016-07-05",
"actual_billable_amount": "437.50",
"num_invoice": "16000162",
“date_closed”:”2016-09-05”
},{
"cle": "{{key}}",
"num_commande": "672620",
"date_billed": "2017-06-14",
"actual_billable_amount": "595",
"num_invoice": "17000100",
“date_closed”:”2017-07-31”
}]'

Si aucune cle {{key}} n’est spécifiée alors une nouvelle fiche sera crée.

oAuth2

OAuth 2.0 est un protocole standard de délégation d'autorisation pour la sécurisation des accès aux API. Il permet aux applications externe d'obtenir un accès limité à GoPaaS sans avoir accès aux mots de passe.

Configuration

Dans la fiche utilisateur API définir dans la section OAuth2 les informations suivante :

Champs Valeur
Grant Type Client Credentials
Client ID Le Client ID est un identifiant public unique attribué à une application cliente lors de son enregistrement auprès du serveur d'autorisation de GoPaaS dans le cadre du protocole OAuth 2.0
Client Secret Le Client Secret est une chaîne de caractères secrète utilisée dans le protocole OAuth 2.0, servant à authentifier l'identité d'une application cliente auprès du serveur d'autorisation, en complément de l'identifiant de client (Client ID).
Expires in La durée d'expiration du token (Expire In), qui indique à l'application combien de temps le token sera valide.

Authorization

Request Access Token

Method Access Token URL
POST api/oauth2/access_token/
Type Params Values
DATA grant_type Client Credentials
DATA client_id L'identifiant public de votre application client fourni par le serveur d'autorisation GoPaaS lorsque vous avez enregistré votre application.
DATA client_id L'identifiant public de votre application client fourni par le serveur d'autorisation GoPaaS lorsque vous avez enregistré votre application.

Response

Status Response
200 JSON
400 {"msg":"Invalid version."}
401 {"msg":"Invalid Information."}
500 {"msg":"Something went wrong. Please try again later."}

Exemple

{
    "access_token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpYXQiOjE3MTEzODUzNjUsImlzcyI6IjU0Ljg2LjUwLjEzOSIsInN1YiI6Im1nb29yaWFoIiwiZXhwIjoxNzExMzg1NDI1LCJzY29wZSI6IkFETUlOIiwianRpIjoiIn0.LRKkcIupGvp81NXKy1rdvD8XusVCYNyyhMCamNdM9p4",
    "token_type": "Bearer",
    "expires_in": "60",
    "scope": "ADMIN"
}

Endpoints

list

Request
Method URL
GET api/oauth2/list/{{id}}/
Type Params Values
HEAD bearer_token String
HEAD (option) advancedSearch String
Response
Status Response
200 JSON
400 {"msg":"Invalid version."}
401 {"msg":"Invalid API key."}
500 {"msg":"Something went wrong. Please try again later."}

Exemple

Avec curl.

curl -X GET \
{{URL}}/api/oauth2/list/{{id}}/
-H 'Authorization: Bearer {{bearer_token}}' \
-H 'content-type: application/json' \
-H 'advancedSearch: nom|contain|NIDS|'

item

Request
Method URL
GET api/oauth2/item/tableName/{{id}}/
Type Params Values
HEAD bearer_token String
Response
Status Response
200 JSON
400 {"msg":"Invalid version."}
401 {"msg":"Invalid API key."}
500 {"msg":"Something went wrong. Please try again later."}
Exemple

Avec curl.

curl -X GET \
{{URL}}/api/oauth2/list/{{id}}/
curl -X POST \
{{URL}}/api/oauth2/item/{{tableName}}/{{id}}/
-H "Authorization: Bearer {{bearer_token}}" \
-H 'content-type: application/json'

items

Request
Method URL
POST api/oauth2/items/tableName/
Type Params Values
HEAD bearer_token String
POST data JSON
Response
Status Response
200 JSON
400 {"msg":"Invalid version."}
401 {"msg":"Invalid API key."}
500 {"msg":"Something went wrong. Please try again later."}

Exemple

curl -X POST \

  {{URL}}/api/items/{{tableName}}/
-H "Authorization: Bearer {{access_token}}" \
-H 'content-type: application/json' \
-d '[{
"cle": "{{key}}",
"num_commande": "551035",
"date_billed": "2016-07-05",
"actual_billable_amount": "437.50",
"num_invoice": "16000162",
“date_closed”:”2016-09-05”
},{
"cle": "{{key}}",
"num_commande": "672620",
"date_billed": "2017-06-14",
"actual_billable_amount": "595",
"num_invoice": "17000100",
“date_closed”:”2017-07-31”
}]'

Si aucune cle {{key}} n’est spécifiée alors une nouvelle fiche sera crée.

Restricition IP

La restriction IP limite les requêtes à une API aux adresses IP spécifiées ou à des plages d'adresses IP. Cela signifie que seules les requêtes provenant d'adresses IP autorisées peuvent accéder à l'API, tandis que toutes les autres tentatives sont rejetées. Cette approche ajoute une couche de sécurité supplémentaire en s'assurant que même si des clés API sont compromises, l'accès est toujours restreint aux emplacements réseau approuvés.

Utilisation

Les restrictions IP sont couramment utilisées dans les scénarios suivants :

Avantages

Implémentation

Dans la fiche utilisateur API définir dans la section API KEY les informations suivante :

Champs Valeur
IP Authorized Address Liste des adresse IP autorisées, les IP seront séparée par un ";"