Bienvenue dans la référence de l'API CLosing . L'API est organisée autour de REST. L'API accepte les corps de requête codés par formulaire, renvoie des réponses codées JSON et utilise des codes de réponse HTTP standard et une authentification .
Endpoints
Tous les appels à l'API doivent commencer par l'URL de base approprié :
https://test-api-closing.flexi-lab.fr/api/v1
Appels API
Curl
Utilisation de curl pour appeler l'API, vous devez include l'URL de la ressource entre guillemets lorsque vous passez plusieurs paramètres de rêquete séparés par un &.
Cette API utilise des codes de réponse HTTP conventionnels pour indiquer le succès ou l'échec d'une demande d'API.
En général:
les codes de la gamme 2xx indiquent le succès.
Les codes de la plage 4xx indiquent une erreur qui a échoué compte tenu des informations fournies (par exemple, un paramètre requis a été omis, une charge a échoué, etc.).
Les codes de la gamme 5xx indiquent une erreur avec le serveur.
Les erreurs répondent avec un code d'erreur et JSON qui contient un message.
{
"errors": [
{
"Message": "The id must be at least 1."
}
]
}
Tableau des erreurs
CODE
NOM DU STATUT
DESCRIPTION
ACTION SUGGÉRÉE
400
Bad Request
Il y a un problème avec votre demande.
Vérifiez que votre demande respecte la documentation de l'API et utilise la syntaxe correcte.
401
Unauthorized
Vous ne disposez pas de l'autorisation nécessaire pour effectuer la demande.
Assurez-vous que vous utilisez une clé API valide avec les autorisations nécessaires pour votre demande.
401
Forbidden
Le serveur a compris la demande mais a refusé de la satisfaire.
Modifiez l'URL de votre demande pour qu'elle corresponde à un point de terminaison d'API valide.
404
Not Found
Le serveur n'a pas pu trouver le fichier demandé.
Vérifiez si l'API inclut la ressource que vous demandez et si votre clé API dispose des autorisations nécessaires.
405
Method Not Allowed
La ressource n'a pas la méthode spécifiée. (par exemple PUT sur les transmissions)
Modifiez la méthode pour suivre la documentation de la ressource.
409
Conflict
Un conflit est né de votre demande. (par exemple, l'utilisateur existe déjà avec cet e-mail)
Modifiez payload pour effacer le conflit.
422
Unprocessable Entity
La requête était syntaxiquement correcte mais a échoué en raison d'erreurs sémantiques.
Assurez-vous que votre demande comprend tous les champs obligatoires et que vos données sont valides.
500
Internal Server Error
Un problème est survenu de notre côté.)
Réessayez la demande plus tard. Si l'erreur ne résout pas, consultez notre page d'état pour les mises à jour du service. Vous pouvez également contacter l'assistance depuis l'application [EU] si votre problème persiste.
503
Service Unavailable
Nous connaissons des niveaux de trafic supérieurs à la normale.
Réessayez la demande plus tard.
Ressources de bases
Documents
Il s’agit du résultat final obtenu via le logiciel.
Un document peut être composé uniquement de briques-arguments et peut donc n’être lié à aucun produit donc à aucun composant.
Créer un document
Paramètres:
document_type_id(oligatoire)
clé étrangère qui fait référence au champ id de la table document_types
dcdc_client_id(oligatoire)
clé étrangère qui fait référence au champ id de la table clients
status(oligatoire)
status de documents(en attente, validé, abandonné, supprimé, archivé, en création)
product_id(oligatoire)
clé étrangère qui fait référence au champ id de la table products
Retour API:
Renvoie un objet document et un message si l'appel a réussi avec un statut du succès.
Renvoie un objet errors et un message si l'appel a réussi avec un statut d'erreur.
{
"errors": [
{
"Message": "The selected status is invalid."
}
]
}
Mettre à jour un document
Paramètres:
id(oligatoire)
ID du document
document_type_id
clé étrangère qui fait référence au champ id de la table document_types
dcdc_client_id
clé étrangère qui fait référence au champ id de la table clients
status
status de documents(en attente, validé, abandonné, supprimé, archivé, en création)
product_id
clé étrangère qui fait référence au champ id de la table products
Retour API:
Renvoie un objet document et un message si l'appel a réussi avec un statut du succès.
Renvoie un objet errors et un message si l'appel a réussi avec un statut d'erreur.
{
"errors": [
{
"Message": "The selected status is invalid."
}
]
}
Récupérer un document
Paramètres:
id(oligatoire)
ID du document
Retour API:
Renvoie un objet document et un message si l'appel a réussi avec un statut du succès.
Renvoie un objet errors et un message si l'appel a réussi avec un statut d'erreur.
Renvoie un objet avec la liste des documents et un message si l'appel a réussi avec un statut du succès.
Renvoie un objet errors et un message si l'appel a réussi avec un statut d'erreur.
{
"errors": {
"message": "the document with id 1 doesn't exist"
}
}
Retourner un document avec les briques
id(oligatoire)
ID du document
Retour API:
Renvoie un objet avec la liste des documents et leurs briques et un message si l'appel a réussi avec un statut du succès.
Renvoie un objet errors et un message si l'appel a réussi avec un statut d'erreur.
{
"errors": {
"message": "the document with id 1 doesn't exist"
}
}
Retourner un document avec les composants
Paramètres:
id(oligatoire)
ID du document
Retour API:
Renvoie un objet document avec les composants et un message si l'appel a réussi avec un statut du succès.
Renvoie un objet errors et un message si l'appel a réussi avec un statut d'erreur.
{
"errors": {
"message": "the document with id 1 doesn't exist"
}
}
Récupérer les documents générés
ID(oligatoire)
ID du document
Retour API:
Renvoie liste de documents générés avec un message si l'appel a réussi.
Renvoie un objet errors et un message si l'appel a réussi avec un statut d'erreur.
{
"errors": {
"message": "the document with id 1 doesn't exist"
}
}
Clients
API des clients
Créer un nouveau client
Paramètres:
name(oligatoire)
nom du client
email (oligatoire)
email du client
contacts
contacts du client
Retour API:
Renvoi un objet client avec un message si l'appel a réussi avec un statut du succès.
Renvoie un objet errors et un message si l'appel a réussi avec un statut d'erreur.
{
"errors": [
{
"Message": "The email has already been taken."
}
]
}
Mettre à jour un client
Paramètres:
id(oligatoire)
ID du client
name
nom du client
email
email du client
contacts
contacts du client
Retour API:
Renvoi un objet client avec un message si l'appel a réussi avec un statut du succès.
Renvoie un objet errors et un message si l'appel a réussi avec un statut d'erreur.
{
"errors": [
{
"Message": "The email has already been taken."
}
]
}
Récupérer un client
Paramètres:
id(oligatoire)
ID du client
Retour API:
Renvoi un objet client avec un message si l'appel a réussi avec un statut du succès.
Renvoie un objet errors et un message si l'appel a réussi avec un statut d'erreur.
Renvoi un objet liste des clients avec un message si l'appel a réussi avec un statut du succès.
Renvoie un objet errors et un message si l'appel a réussi avec un statut d'erreur.
{
"errors": {
"message": "the client with id 9 doesn't exist"
}
}
Produits
Le logiciel s’adresse à des utilisateurs souhaitant créer un document présentant un produit spécifiquement conçu pour leur client en choisissant dans leur catalogue des éléments qui répondent aux besoins de celui-ci.
Créer un produit
Paramètres:
title (oligatoire)
Titre du produit
reference(oligatoire)
Réfrence du produit
icon(oligatoire)
icon du produit
description
description du produit
Retour API:
Renvoi un objet produit avec un message si l'appel a réussi avec un statut du succès.
Renvoie un objet errors et un message si l'appel a réussi avec un statut d'erreur.
{
"errors": [
{
"Message": "The reference has already been taken."
}
]
}
Mettre à jour un produit
Paramètres:
id(oligatoire)
ID du document
title
Titre du produit
reference
Réfrence du produit
icon
icon du produit
description
description du produit
Retour API:
Renvoi un objet produit avec un message si l'appel a réussi avec un statut du succès.
Renvoie un objet errors et un message si l'appel a réussi avec un statut d'erreur.
PUT/api/v1/products
Reponse
{
"message": "Product successfully updated",
"product": {
"id": 1,
"title": "Site web",
"reference": "produit01",
"description": "Ensemble de pages Web reliées entre elles par des liens internes, visualisable depuis un navigateur Web.",
"created_at": "2021-01-27T15:06:58.000000Z",
"updated_at": "2021-02-12T13:16:43.000000Z",
"deleted_at": null,
"icon": "fa fa-laptop"
}
}
{
"message": "Product successfully updated",
"product": {
"id": 1,
"title": "Site web",
"reference": "produit01",
"description": "Ensemble de pages Web reliées entre elles par des liens internes, visualisable depuis un navigateur Web.",
"created_at": "2021-01-27T15:06:58.000000Z",
"updated_at": "2021-02-12T13:16:43.000000Z",
"deleted_at": null,
"icon": "fa fa-laptop"
}
}
{
"errors": [
{
"Message": "The reference has already been taken."
}
]
}
Récupérer un produit
Paramètres:
id(oligatoire)
ID du produit
Retour API:
Renvoi un objet produit avec un message si l'appel a réussi avec un statut du succès.
Renvoie un objet errors et un message si l'appel a réussi avec un statut d'erreur.
GET/api/v1/products/{id}
Reponse
{
"message": "product informations",
"product": {
"id": 1,
"title": "Site web",
"reference": "produit01",
"description": "Ensemble de pages Web reliées entre elles par des liens internes, visualisable depuis un navigateur Web.",
"created_at": "2021-01-27T15:06:58.000000Z",
"updated_at": "2021-02-12T13:16:43.000000Z",
"deleted_at": null,
"icon": "fa fa-laptop"
}
}
{
"message": "product informations",
"product": {
"id": 1,
"title": "Site web",
"reference": "produit01",
"description": "Ensemble de pages Web reliées entre elles par des liens internes, visualisable depuis un navigateur Web.",
"created_at": "2021-01-27T15:06:58.000000Z",
"updated_at": "2021-02-12T13:16:43.000000Z",
"deleted_at": null,
"icon": "fa fa-laptop"
}
}
{
"errors": {
"message": "there is no product with this id 13"
}
}
Récupérer tous les produits
Paramètres:
title
Recherche par le titre du produit
icon
Recherche par l'icone du produit
reference
Recherche par la reférence du produit
created_at
Recherche par la date de création du produit
updated_at
Recherche par la date de mise à jour du produit
sort
Trier par des colonnes
offset
Pagination par offset
limit
Pagination par limit
fields
Retourner seulement liste des données par fields
Retour API:
Renvoi un objet liste des produits avec un message si l'appel a réussi avec un statut du succès.
Renvoie un objet errors et un message si l'appel a réussi avec un statut d'erreur.
{
"errors": {
"message": "the product with id 7 doesn't exist"
}
}
Parts
C’est un morceau de document composé de texte déjà mis en page et possiblement d’images intégrées dans la mise en page.
Créer une nouvelle brique
Paramètres:
title (oligatoire)
Titre de brique
type (oligatoire)
type de brique (treatment,description,argumentative)
function_name
Nom de la fonction de traitement
status (oligatoire)
status de brique (required,optional,included)
document_type_id (oligatoire)
clé étrangère qui fait référence au champ id de la table document_types
part_category_id
clé étrangère qui fait référence au champ id de la table part_categories
parent_id
clé étrangère qui fait référence au parent d'une brique
component_id
clé étrangère qui fait référence au champ id de la table components
Retour API:
Renvoie un objet part et un message si l'appel a réussi avec un statut du succès.
Renvoie un objet errors et un message si l'appel a réussi avec un statut d'erreur.
{
"errors": [
{
"Message": "The selected type is invalid."
},
{
"Message": "The selected status is invalid."
}
]
}
{
"errors": {
"message": "there is no Document type with this id 545"
}
}
Mettre à jour une brique
Paramètres:
id(oligatoire)
ID d'une brique
title
Titre de brique
type
type de brique (treatment,description,argumentative)
function_name
Nom de la fonction de traitement
status
status de brique (required,optional,included)
document_type_id
clé étrangère qui fait référence au champ id de la table document_types
part_category_id
clé étrangère qui fait référence au champ id de la table part_categories
parent_id
clé étrangère qui fait référence au parent d'une brique
component_id
clé étrangère qui fait référence au champ id de la table components
Retour API:
Renvoie un objet part et un message si l'appel a réussi avec un statut du succès.
Renvoie un objet errors et un message si l'appel a réussi avec un statut d'erreur.
{
"errors": [
{
"Message": "The selected status is invalid."
}
]
}
{
"errors": {
"message": "there is no Document type with this id 545"
}
}
Récupérer une brique
Paramètres:
id(oligatoire)
ID d'une brique
Retour API:
Renvoie un objet part et un message si l'appel a réussi avec un statut du succès.
Renvoie un objet errors et un message si l'appel a réussi avec un statut d'erreur.
{
"errors": {
"message": "there is no part with this id 13"
}
}
Récupérer tous les briques
Paramètres:
title
Recherche par le titre de brique
type
Recherche par le type de brique
function_name
Recherche par le nom de fonction de brique
status
Recherche par status
parent_id
Recherche par parent_id
component_id
Recherche par component_id
created_at
Recherche par la date de création d'une brique
updated_at
Recherche par la date de mise à jour d'une brique
sort
Trier par des colonnes
offset
Pagination par offset
limit
Pagination par limit
fields
Retourner seulement liste des données par fields
Retour API:
Renvoie un objet liste des briques et un message si l'appel a réussi avec un statut du succès.
Renvoie un objet errors et un message si l'appel a réussi avec un statut d'erreur.
{
"errors": {
"message": "the part with id 3 doesn't exist"
}
}
Récupérer une brique avec leurs catégories
Paramètres:
id(oligatoire)
ID d'une brique
Retour API:
Renvoie un objet part avec leur catégories et un message si l'appel a réussi avec un statut du succès.
Renvoie un objet errors et un message si l'appel a réussi avec un statut d'erreur.
{
"errors": {
"message": "the part with id 9 doesn't exist"
}
}
Télécharger le contenu d'une brique
Paramètres:
id(oligatoire)
ID d'une brique
file(oligatoire)
Fichier d'une brique de type docx,doc
Retour API:
Renvoie un objet part avec un message si l'appel a réussi avec un statut du succès.
Renvoie un objet errors et un message si l'appel a réussi avec un statut d'erreur.
{
"errors": {
"message": "the part with id 9 doesn't exist"
}
}
{
"errors": [
{
"Message": "The file must be a file of type: doc, docx."
}
]
}
Télécharger une image pour une brique
Paramètres:
id(oligatoire)
ID d'une brique
file(oligatoire)
Image d'une brique
Retour API:
Renvoie un objet part avec un message si l'appel a réussi avec un statut du succès.
Renvoie un objet errors et un message si l'appel a réussi avec un statut d'erreur.
{
"errors": {
"message": "the part with id 9 doesn't exist"
}
}
{
"errors": [
{
"Message": "The image must be an image."
}
]
}
Composants
Ce sont les éléments choisis pour composer le produit sur mesure que l’on souhaite proposer au client.
Créer un nouveau composant
Paramètres:
title (oligatoire)
titre de composant
reference (oligatoire)
reference de composant
description
description de composant
product_id (oligatoire)
clé étrangère qui fait référence au champ id de la table products
Retour API:
Renvoie un objet component et un message si l'appel a réussi avec un statut du succès.
Renvoie un objet errors et un message si l'appel a réussi avec un statut d'erreur.
{
"errors": [
{
"Message": "The reference has already been taken."
}
]
}
Mettre à jour un composant
Paramètres:
id(oligatoire)
ID de composant
title
titre de composant
reference
reference de composant
description
description de composant
product_id
clé étrangère qui fait référence au champ id de la table products
Retour API:
Renvoie un objet component et un message si l'appel a réussi avec un statut du succès.
Renvoie un objet errors et un message si l'appel a réussi avec un statut d'erreur.
{
"errors": {
"message": "the component with id 98 doesn't exist"
}
}
{
"errors": [
{
"Message": "The reference has already been taken."
}
]
}
Récupérer un composant
Paramètres:
id(oligatoire)
ID de composant
Retour API:
Renvoie un objet component et un message si l'appel a réussi avec un statut du succès.
Renvoie un objet errors et un message si l'appel a réussi avec un statut d'erreur.
{
"errors": {
"message": "the component with id 9 doesn't exist"
}
}
Récupérer tous les composants
Paramètres:
title
Recherche par le titre du composant
icon
Recherche par l'icone du composant
reference
Recherche par la reference du composant
created_at
Recherche par la date de création du composant
updated_at
Recherche par la date de mise à jour du composant
sort
Trier par des colonnes
offset
Pagination par offset
limit
Pagination par limit
fields
Retourner seulement liste des données par fields
Retour API:
Renvoie un objet liste des composants et un message si l'appel a réussi avec un statut du succès.
Renvoie un objet errors et un message si l'appel a réussi avec un statut d'erreur.
{
"errors": {
"message": "the component with id 3 doesn't exist"
}
}
Récupérer un composant
Paramètres:
id(oligatoire)
ID de composant
Retour API:
Renvoie un objet component et un message si l'appel a réussi avec un statut du succès.
Renvoie un objet errors et un message si l'appel a réussi avec un statut d'erreur.
{
"errors": {
"message": "the component with id 3 doesn't exist"
}
}
Récupérer un composant avec leur catégories
Paramètres:
id(oligatoire)
ID de composant
Retour API:
Renvoie un objet component avec ces catégories et un message si l'appel a réussi avec un statut du succès.
Renvoie un objet errors et un message si l'appel a réussi avec un statut d'erreur.
{
"errors": {
"message": "the component with id 3 doesn't exist"
}
}
Type de documents
Les types de documents qui seront gérés par l’application (propositions, documents de cadrage, ..)
Créer un nouveau type de document
Paramètres:
name(oligatoire)
nom de type de document
parent_id
le parent de type de document
prefix_ref(oligatoire)
prefix de référence pour le type de document
is_primary_type
is_primary_type de type de document
Retour API:
Renvoie un objet document type et un message si l'appel a réussi avec un statut du succès.
Renvoie un objet errors et un message si l'appel a réussi avec un statut d'erreur.
{
"errors": [
{
"Message": "The parent id must be an integer."
}
]
}
Mettre à jour un type de document
Paramètres:
id(oligatoire)
ID du client
name
nom de type de document
parent_id
le parent de type de document
prefix_ref
prefix de référence pour le type de document
is_primary_type
is_primary_type de type de document
Retour API:
Renvoie un objet document type et un message si l'appel a réussi avec un statut du succès.
Renvoie un objet errors et un message si l'appel a réussi avec un statut d'erreur.
{
"errors": {
"message": "the parent with id 89 doesn't exist"
}
}
{
"errors": [
{
"Message": "The parent id must be an integer."
}
]
}
Récupérer un type de document
Paramètres:
id(oligatoire)
ID de type de document
Retour API:
Renvoie un objet document type et un message si l'appel a réussi avec un statut du succès.
Renvoie un objet errors et un message si l'appel a réussi avec un statut d'erreur.
Recherche par la date de création de type de document
updated_at
Recherche par la date de mise à jour de type de document
sort
Trier par des colonnes
offset
Pagination par offset
limit
Pagination par limit
fields
Retourner seulement liste des données par fields
Retour API:
Renvoie un objet liste des types de documents et un message si l'appel a réussi avec un statut du succès.
Renvoie un objet errors et un message si l'appel a réussi avec un statut d'erreur.