540 lines
20 KiB
JSON
540 lines
20 KiB
JSON
{
|
|
"info": {
|
|
"name": "Xpeditis API Collection",
|
|
"description": "Collection complète des endpoints pour l'API Xpeditis - Plateforme de shipping maritime et logistique",
|
|
"version": "1.0.0",
|
|
"schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json"
|
|
},
|
|
"auth": {
|
|
"type": "bearer",
|
|
"bearer": [
|
|
{
|
|
"key": "token",
|
|
"value": "{{jwt_token}}",
|
|
"type": "string"
|
|
}
|
|
]
|
|
},
|
|
"variable": [
|
|
{
|
|
"key": "base_url",
|
|
"value": "http://localhost:8080",
|
|
"type": "string"
|
|
},
|
|
{
|
|
"key": "jwt_token",
|
|
"value": "",
|
|
"type": "string"
|
|
},
|
|
{
|
|
"key": "refresh_token",
|
|
"value": "",
|
|
"type": "string"
|
|
}
|
|
],
|
|
"item": [
|
|
{
|
|
"name": "🏠 Service Info",
|
|
"item": [
|
|
{
|
|
"name": "Get Service Information",
|
|
"request": {
|
|
"method": "GET",
|
|
"header": [
|
|
{
|
|
"key": "Content-Type",
|
|
"value": "application/json"
|
|
}
|
|
],
|
|
"url": {
|
|
"raw": "{{base_url}}/",
|
|
"host": ["{{base_url}}"],
|
|
"path": [""]
|
|
}
|
|
},
|
|
"response": []
|
|
}
|
|
],
|
|
"description": "Endpoints pour récupérer les informations du service"
|
|
},
|
|
{
|
|
"name": "🔐 Authentication",
|
|
"item": [
|
|
{
|
|
"name": "Login",
|
|
"event": [
|
|
{
|
|
"listen": "test",
|
|
"script": {
|
|
"exec": [
|
|
"if (pm.response.code === 200) {",
|
|
" var jsonData = pm.response.json();",
|
|
" pm.collectionVariables.set('jwt_token', jsonData.accessToken);",
|
|
" pm.collectionVariables.set('refresh_token', jsonData.refreshToken);",
|
|
"}"
|
|
]
|
|
}
|
|
}
|
|
],
|
|
"request": {
|
|
"method": "POST",
|
|
"header": [
|
|
{
|
|
"key": "Content-Type",
|
|
"value": "application/json"
|
|
}
|
|
],
|
|
"body": {
|
|
"mode": "raw",
|
|
"raw": "{\n \"username\": \"user@example.com\",\n \"password\": \"Password123!\"\n}"
|
|
},
|
|
"url": {
|
|
"raw": "{{base_url}}/api/v1/auth/login",
|
|
"host": ["{{base_url}}"],
|
|
"path": ["api", "v1", "auth", "login"]
|
|
}
|
|
},
|
|
"response": []
|
|
},
|
|
{
|
|
"name": "Register",
|
|
"event": [
|
|
{
|
|
"listen": "test",
|
|
"script": {
|
|
"exec": [
|
|
"if (pm.response.code === 201) {",
|
|
" var jsonData = pm.response.json();",
|
|
" pm.collectionVariables.set('jwt_token', jsonData.accessToken);",
|
|
" pm.collectionVariables.set('refresh_token', jsonData.refreshToken);",
|
|
"}"
|
|
]
|
|
}
|
|
}
|
|
],
|
|
"request": {
|
|
"method": "POST",
|
|
"header": [
|
|
{
|
|
"key": "Content-Type",
|
|
"value": "application/json"
|
|
}
|
|
],
|
|
"body": {
|
|
"mode": "raw",
|
|
"raw": "{\n \"firstName\": \"John\",\n \"lastName\": \"Doe\",\n \"email\": \"john.doe@example.com\",\n \"username\": \"johndoe\",\n \"password\": \"Password123!\",\n \"confirmPassword\": \"Password123!\",\n \"phoneNumber\": \"+33123456789\",\n \"companyName\": \"Maritime Solutions Inc\",\n \"companyCountry\": \"France\",\n \"authProvider\": \"LOCAL\",\n \"privacyPolicyAccepted\": true\n}"
|
|
},
|
|
"url": {
|
|
"raw": "{{base_url}}/api/v1/auth/register",
|
|
"host": ["{{base_url}}"],
|
|
"path": ["api", "v1", "auth", "register"]
|
|
}
|
|
},
|
|
"response": []
|
|
},
|
|
{
|
|
"name": "Google OAuth",
|
|
"event": [
|
|
{
|
|
"listen": "test",
|
|
"script": {
|
|
"exec": [
|
|
"if (pm.response.code === 200) {",
|
|
" var jsonData = pm.response.json();",
|
|
" pm.collectionVariables.set('jwt_token', jsonData.accessToken);",
|
|
" pm.collectionVariables.set('refresh_token', jsonData.refreshToken);",
|
|
"}"
|
|
]
|
|
}
|
|
}
|
|
],
|
|
"request": {
|
|
"method": "POST",
|
|
"header": [
|
|
{
|
|
"key": "Content-Type",
|
|
"value": "application/json"
|
|
}
|
|
],
|
|
"body": {
|
|
"mode": "raw",
|
|
"raw": "{\n \"googleToken\": \"google_oauth_token_here\",\n \"companyName\": \"Optional Company Name\",\n \"phoneNumber\": \"+33123456789\"\n}"
|
|
},
|
|
"url": {
|
|
"raw": "{{base_url}}/api/v1/auth/google",
|
|
"host": ["{{base_url}}"],
|
|
"path": ["api", "v1", "auth", "google"]
|
|
}
|
|
},
|
|
"response": []
|
|
},
|
|
{
|
|
"name": "Refresh Token",
|
|
"event": [
|
|
{
|
|
"listen": "test",
|
|
"script": {
|
|
"exec": [
|
|
"if (pm.response.code === 200) {",
|
|
" var jsonData = pm.response.json();",
|
|
" pm.collectionVariables.set('jwt_token', jsonData.accessToken);",
|
|
" pm.collectionVariables.set('refresh_token', jsonData.refreshToken);",
|
|
"}"
|
|
]
|
|
}
|
|
}
|
|
],
|
|
"request": {
|
|
"method": "POST",
|
|
"header": [
|
|
{
|
|
"key": "Content-Type",
|
|
"value": "application/json"
|
|
}
|
|
],
|
|
"body": {
|
|
"mode": "raw",
|
|
"raw": "{\n \"refreshToken\": \"{{refresh_token}}\"\n}"
|
|
},
|
|
"url": {
|
|
"raw": "{{base_url}}/api/v1/auth/refresh",
|
|
"host": ["{{base_url}}"],
|
|
"path": ["api", "v1", "auth", "refresh"]
|
|
}
|
|
},
|
|
"response": []
|
|
},
|
|
{
|
|
"name": "Logout",
|
|
"request": {
|
|
"method": "POST",
|
|
"header": [
|
|
{
|
|
"key": "Content-Type",
|
|
"value": "application/json"
|
|
},
|
|
{
|
|
"key": "Authorization",
|
|
"value": "Bearer {{jwt_token}}"
|
|
}
|
|
],
|
|
"url": {
|
|
"raw": "{{base_url}}/api/v1/auth/logout",
|
|
"host": ["{{base_url}}"],
|
|
"path": ["api", "v1", "auth", "logout"]
|
|
}
|
|
},
|
|
"response": []
|
|
}
|
|
],
|
|
"description": "Endpoints d'authentification et gestion des sessions JWT"
|
|
},
|
|
{
|
|
"name": "👤 Profile Management",
|
|
"item": [
|
|
{
|
|
"name": "Get Profile",
|
|
"request": {
|
|
"method": "GET",
|
|
"header": [
|
|
{
|
|
"key": "Content-Type",
|
|
"value": "application/json"
|
|
},
|
|
{
|
|
"key": "Authorization",
|
|
"value": "Bearer {{jwt_token}}"
|
|
}
|
|
],
|
|
"url": {
|
|
"raw": "{{base_url}}/api/v1/profile",
|
|
"host": ["{{base_url}}"],
|
|
"path": ["api", "v1", "profile"]
|
|
}
|
|
},
|
|
"response": []
|
|
},
|
|
{
|
|
"name": "Update Profile",
|
|
"request": {
|
|
"method": "PUT",
|
|
"header": [
|
|
{
|
|
"key": "Content-Type",
|
|
"value": "application/json"
|
|
},
|
|
{
|
|
"key": "Authorization",
|
|
"value": "Bearer {{jwt_token}}"
|
|
}
|
|
],
|
|
"body": {
|
|
"mode": "raw",
|
|
"raw": "{\n \"firstName\": \"John Updated\",\n \"lastName\": \"Doe Updated\",\n \"phoneNumber\": \"+33987654321\",\n \"username\": \"johnupdated\"\n}"
|
|
},
|
|
"url": {
|
|
"raw": "{{base_url}}/api/v1/profile",
|
|
"host": ["{{base_url}}"],
|
|
"path": ["api", "v1", "profile"]
|
|
}
|
|
},
|
|
"response": []
|
|
}
|
|
],
|
|
"description": "Endpoints de gestion du profil utilisateur via ProfileController"
|
|
},
|
|
{
|
|
"name": "👥 User Management",
|
|
"item": [
|
|
{
|
|
"name": "Get User Profile (Alternative)",
|
|
"request": {
|
|
"method": "GET",
|
|
"header": [
|
|
{
|
|
"key": "Content-Type",
|
|
"value": "application/json"
|
|
},
|
|
{
|
|
"key": "Authorization",
|
|
"value": "Bearer {{jwt_token}}"
|
|
}
|
|
],
|
|
"url": {
|
|
"raw": "{{base_url}}/api/v1/users/profile",
|
|
"host": ["{{base_url}}"],
|
|
"path": ["api", "v1", "users", "profile"]
|
|
}
|
|
},
|
|
"response": []
|
|
},
|
|
{
|
|
"name": "Update User Profile (Alternative)",
|
|
"request": {
|
|
"method": "PUT",
|
|
"header": [
|
|
{
|
|
"key": "Content-Type",
|
|
"value": "application/json"
|
|
},
|
|
{
|
|
"key": "Authorization",
|
|
"value": "Bearer {{jwt_token}}"
|
|
}
|
|
],
|
|
"body": {
|
|
"mode": "raw",
|
|
"raw": "{\n \"firstName\": \"John Updated\",\n \"lastName\": \"Doe Updated\",\n \"phoneNumber\": \"+33987654321\",\n \"username\": \"johnupdated\"\n}"
|
|
},
|
|
"url": {
|
|
"raw": "{{base_url}}/api/v1/users/profile",
|
|
"host": ["{{base_url}}"],
|
|
"path": ["api", "v1", "users", "profile"]
|
|
}
|
|
},
|
|
"response": []
|
|
},
|
|
{
|
|
"name": "Change Password",
|
|
"request": {
|
|
"method": "PUT",
|
|
"header": [
|
|
{
|
|
"key": "Content-Type",
|
|
"value": "application/json"
|
|
},
|
|
{
|
|
"key": "Authorization",
|
|
"value": "Bearer {{jwt_token}}"
|
|
}
|
|
],
|
|
"body": {
|
|
"mode": "raw",
|
|
"raw": "{\n \"currentPassword\": \"Password123!\",\n \"newPassword\": \"NewPassword123!\",\n \"confirmationPassword\": \"NewPassword123!\"\n}"
|
|
},
|
|
"url": {
|
|
"raw": "{{base_url}}/api/v1/users/password",
|
|
"host": ["{{base_url}}"],
|
|
"path": ["api", "v1", "users", "password"]
|
|
}
|
|
},
|
|
"response": []
|
|
},
|
|
{
|
|
"name": "Delete Account",
|
|
"request": {
|
|
"method": "DELETE",
|
|
"header": [
|
|
{
|
|
"key": "Content-Type",
|
|
"value": "application/json"
|
|
},
|
|
{
|
|
"key": "Authorization",
|
|
"value": "Bearer {{jwt_token}}"
|
|
}
|
|
],
|
|
"url": {
|
|
"raw": "{{base_url}}/api/v1/users/account",
|
|
"host": ["{{base_url}}"],
|
|
"path": ["api", "v1", "users", "account"]
|
|
}
|
|
},
|
|
"response": []
|
|
},
|
|
{
|
|
"name": "List Users (Admin Only)",
|
|
"request": {
|
|
"method": "GET",
|
|
"header": [
|
|
{
|
|
"key": "Content-Type",
|
|
"value": "application/json"
|
|
},
|
|
{
|
|
"key": "Authorization",
|
|
"value": "Bearer {{jwt_token}}"
|
|
}
|
|
],
|
|
"url": {
|
|
"raw": "{{base_url}}/api/v1/users?page=0&size=10",
|
|
"host": ["{{base_url}}"],
|
|
"path": ["api", "v1", "users"],
|
|
"query": [
|
|
{
|
|
"key": "page",
|
|
"value": "0"
|
|
},
|
|
{
|
|
"key": "size",
|
|
"value": "10"
|
|
},
|
|
{
|
|
"key": "companyId",
|
|
"value": "uuid-company-id",
|
|
"disabled": true
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"response": []
|
|
}
|
|
],
|
|
"description": "Endpoints de gestion des utilisateurs - profil, mot de passe, suppression de compte"
|
|
},
|
|
{
|
|
"name": "📋 Devis Transport",
|
|
"item": [
|
|
{
|
|
"name": "Calculer Devis (3 offres automatiques)",
|
|
"request": {
|
|
"method": "POST",
|
|
"header": [
|
|
{
|
|
"key": "Content-Type",
|
|
"value": "application/json"
|
|
}
|
|
],
|
|
"body": {
|
|
"mode": "raw",
|
|
"raw": "{\n \"typeService\": \"EXPORT\",\n \"incoterm\": \"FOB\",\n \"typeLivraison\": \"PORTE_A_PORTE\",\n \"depart\": {\n \"ville\": \"Marseille\",\n \"codePostal\": \"13000\",\n \"pays\": \"France\",\n \"coordonneesGps\": \"43.2965,5.3698\"\n },\n \"arrivee\": {\n \"ville\": \"Shanghai\",\n \"codePostal\": \"200000\",\n \"pays\": \"Chine\",\n \"coordonneesGps\": \"31.2304,121.4737\"\n },\n \"douaneImportExport\": \"EXPORT\",\n \"eur1Import\": false,\n \"eur1Export\": true,\n \"colisages\": [\n {\n \"type\": \"PALETTE\",\n \"quantite\": 3,\n \"longueur\": 120.0,\n \"largeur\": 80.0,\n \"hauteur\": 160.0,\n \"poids\": 750.5,\n \"gerbable\": true\n },\n {\n \"type\": \"CAISSE\",\n \"quantite\": 2,\n \"longueur\": 100.0,\n \"largeur\": 60.0,\n \"hauteur\": 120.0,\n \"poids\": 450.2,\n \"gerbable\": false\n }\n ],\n \"marchandiseDangereuse\": {\n \"presente\": true,\n \"classe\": \"3\",\n \"numeroOnu\": \"UN1263\",\n \"description\": \"Peintures inflammables\"\n },\n \"manutentionParticuliere\": {\n \"hayon\": true,\n \"sangles\": true,\n \"couvertureThermique\": false,\n \"autres\": \"Manutention précautionneuse requise\"\n },\n \"produitsReglementes\": {\n \"alimentaire\": false,\n \"pharmaceutique\": false,\n \"autres\": null\n },\n \"servicesAdditionnels\": {\n \"rendezVousLivraison\": true,\n \"documentT1\": false,\n \"stopDouane\": true,\n \"assistanceExport\": true,\n \"assurance\": true,\n \"valeurDeclaree\": 15000.0\n },\n \"dateEnlevement\": \"2025-01-15\",\n \"dateLivraison\": \"2025-02-20\",\n \"nomClient\": \"Maritime Solutions SAS\",\n \"emailClient\": \"contact@maritime-solutions.fr\"\n}"
|
|
},
|
|
"url": {
|
|
"raw": "{{base_url}}/api/v1/devis/calculer",
|
|
"host": ["{{base_url}}"],
|
|
"path": ["api", "v1", "devis", "calculer"]
|
|
}
|
|
},
|
|
"response": []
|
|
},
|
|
{
|
|
"name": "Valider Demande de Devis",
|
|
"request": {
|
|
"method": "POST",
|
|
"header": [
|
|
{
|
|
"key": "Content-Type",
|
|
"value": "application/json"
|
|
}
|
|
],
|
|
"body": {
|
|
"mode": "raw",
|
|
"raw": "{\n \"typeService\": \"EXPORT\",\n \"incoterm\": \"FOB\",\n \"depart\": {\n \"ville\": \"Marseille\",\n \"codePostal\": \"13000\",\n \"pays\": \"France\"\n },\n \"arrivee\": {\n \"ville\": \"Shanghai\",\n \"codePostal\": \"200000\",\n \"pays\": \"Chine\"\n },\n \"colisages\": [\n {\n \"type\": \"CAISSE\",\n \"quantite\": 2,\n \"poids\": 150.5,\n \"longueur\": 120.0,\n \"largeur\": 80.0,\n \"hauteur\": 100.0,\n \"gerbable\": false\n }\n ],\n \"marchandiseDangereuse\": null,\n \"nomClient\": \"Test Client\",\n \"emailClient\": \"test@test.com\"\n}"
|
|
},
|
|
"url": {
|
|
"raw": "{{base_url}}/api/v1/devis/valider",
|
|
"host": ["{{base_url}}"],
|
|
"path": ["api", "v1", "devis", "valider"]
|
|
}
|
|
},
|
|
"response": []
|
|
},
|
|
{
|
|
"name": "Calculer Devis - Exemple Simple",
|
|
"request": {
|
|
"method": "POST",
|
|
"header": [
|
|
{
|
|
"key": "Content-Type",
|
|
"value": "application/json"
|
|
}
|
|
],
|
|
"body": {
|
|
"mode": "raw",
|
|
"raw": "{\n \"typeService\": \"EXPORT\",\n \"incoterm\": \"FOB\",\n \"depart\": {\n \"ville\": \"Marseille\",\n \"codePostal\": \"13000\",\n \"pays\": \"France\"\n },\n \"arrivee\": {\n \"ville\": \"Shanghai\",\n \"codePostal\": \"200000\",\n \"pays\": \"Chine\"\n },\n \"colisages\": [\n {\n \"type\": \"CAISSE\",\n \"quantite\": 2,\n \"poids\": 150.5,\n \"longueur\": 120.0,\n \"largeur\": 80.0,\n \"hauteur\": 100.0,\n \"gerbable\": false\n }\n ],\n \"marchandiseDangereuse\": null,\n \"nomClient\": \"Test Client\",\n \"emailClient\": \"test@test.com\"\n}"
|
|
},
|
|
"url": {
|
|
"raw": "{{base_url}}/api/v1/devis/calculer",
|
|
"host": ["{{base_url}}"],
|
|
"path": ["api", "v1", "devis", "calculer"]
|
|
}
|
|
},
|
|
"response": []
|
|
},
|
|
{
|
|
"name": "Calculer Devis - Avec Marchandises Dangereuses",
|
|
"request": {
|
|
"method": "POST",
|
|
"header": [
|
|
{
|
|
"key": "Content-Type",
|
|
"value": "application/json"
|
|
}
|
|
],
|
|
"body": {
|
|
"mode": "raw",
|
|
"raw": "{\n \"typeService\": \"EXPORT\",\n \"incoterm\": \"FOB\",\n \"depart\": {\n \"ville\": \"Marseille\",\n \"codePostal\": \"13000\",\n \"pays\": \"France\"\n },\n \"arrivee\": {\n \"ville\": \"Hong Kong\",\n \"codePostal\": \"999077\",\n \"pays\": \"Hong Kong\"\n },\n \"colisages\": [\n {\n \"type\": \"PALETTE\",\n \"quantite\": 5,\n \"poids\": 890.0,\n \"longueur\": 120.0,\n \"largeur\": 80.0,\n \"hauteur\": 200.0,\n \"gerbable\": true\n }\n ],\n \"marchandiseDangereuse\": {\n \"presente\": true,\n \"classe\": \"3\",\n \"numeroOnu\": \"UN1263\",\n \"description\": \"Produits chimiques inflammables\"\n },\n \"servicesAdditionnels\": {\n \"assurance\": true,\n \"valeurDeclaree\": 25000.0,\n \"rendezVousLivraison\": true,\n \"assistanceExport\": true\n },\n \"nomClient\": \"Chemical Industries Ltd\",\n \"emailClient\": \"export@chemical-industries.com\"\n}"
|
|
},
|
|
"url": {
|
|
"raw": "{{base_url}}/api/v1/devis/calculer",
|
|
"host": ["{{base_url}}"],
|
|
"path": ["api", "v1", "devis", "calculer"]
|
|
}
|
|
},
|
|
"response": []
|
|
}
|
|
],
|
|
"description": "API de calcul automatisé de devis transport maritime - génère 3 offres (Rapide, Standard, Économique) basées sur les grilles tarifaires LESCHACO"
|
|
}
|
|
],
|
|
"event": [
|
|
{
|
|
"listen": "prerequest",
|
|
"script": {
|
|
"type": "text/javascript",
|
|
"exec": [
|
|
""
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"listen": "test",
|
|
"script": {
|
|
"type": "text/javascript",
|
|
"exec": [
|
|
""
|
|
]
|
|
}
|
|
}
|
|
]
|
|
} |