Retour : page principale > sommaire applications générales > Documentation TBF
La classe RestServeur est la classe principale gérant les services web de type REST, traitant les URL reçues et appelant les méthodes correspondantes de la classe RestService.
Les services doivent ĂȘtre dĂ©veloppĂ©es selon une arborescence prĂ©cise.
L'URL doit ĂȘtre de la forme http://www.mondomaine.org/services/[apiVersion]/[mon-service]/ .
TBFramework - Rest Serveur et Rest Service
La classe RestServeur est la classe principale gérant les services web de type REST, traitant les URL reçues et appelant les méthodes correspondantes de la classe RestService.
Les services doivent ĂȘtre dĂ©veloppĂ©es selon une arborescence prĂ©cise.
L'URL doit ĂȘtre de la forme http://www.mondomaine.org/services/[apiVersion]/[mon-service]/ .
Rest Serveur
Config
Les paramĂštres suivants doivent ĂȘtre dĂ©finies :- debogage : boolĂ©en indiquant si l'on souhaite afficher le dĂ©bogage,
- debogage_mode :
- "php:Debug::MODE_ECHO" : le message est affiché en utilisant echo,
- "php:Debug::MODE_NOTICE" : le message est affiché en utilisant une erreur de type notice
- "php:Debug::MODE_ENTETE_HTTP" : les messages sont envoyĂ©s dans un entĂȘte HTTP "X_REST_DEBOGAGE") ,
- serveur.baseURL : chemin pour accéder aux services,
- chemin_modules : chemin vers les dossiers modules.
Fonctions
- La fonction construct() analyse les données envoyées au serveur, enregistre la méthode HTTP utilisée pour appeler le serveur et parse l'url appelée pour trouver le service demandé.
- La fonction executer() exĂ©cute la requĂȘte en faisant appel aux fonctions consulter(), ajouter(), modifier() et supprimer() de la classe Rest Service en fonction que la demande soit GET, PUT, POST ou DELETE.
- La fonction envoyerEnteteStatutHttp($code) envoie un entĂȘte HTTP (version 1.0) de statut. Elle prend en paramĂštre un code correspondant au statut de rĂ©ponse de la requĂȘte (nom = code => texte : dĂ©finition) :
- HTTP_CODE_OK = '200' => 'OK' : succÚs de l'accÚs à un service web par la méthode GET,
- HTTP_CODE_CREATION_OK = '201' => 'Created' : succÚs de l'accÚs à un service web et de la création ou de la modification de la ressource,
- HTTP_CODE_SUPPRESSION_OK = '204' => 'No Content' : succĂšs de l'accĂšs Ă un service web et de la suppression de la ressource,
- HTTP_CODE_MAUVAISE_REQUETE = '400' => 'Bad Request' : les paramÚtres envoyés au service contiennent des erreurs,
- HTTP_CODE_ACCES_NON_AUTORISE = '401' => 'Unauthorized' : l'accÚs à un service web est refusé car l'authentification (obligatoire) a échoué pour accéder à la ressource,
- HTTP_CODE_RESSOURCE_INTROUVABLE = '404' => 'Not Found' : la ressource indiquée par l'url est introuvable,
- HTTP_CODE_METHODE_NON_AUTORISE = '405' => 'Method Not Allowed' : le service web ne possÚde pas d'accÚs à la ressource correspondant à la méthode HTTP employée ou que la méthode HTTP enployée n'est pas en accord avec la ressource indiquée par l'url,
- HTTP_CODE_CONFLIT = '409' => 'Conflict' : un conflit est survenu vis Ă vis de la ressource,
- HTTP_CODE_CONTENU_REQUIS = '411' => 'Length Required' : il manque des paramĂštres nĂ©cessaires au service dans le contenu de la requĂȘte,
- HTTP_CODE_ERREUR = '500' => 'Internal Server Error' : le serveur ou un service soulĂšve une erreur ou une exception.
- La fonction gererErreurs() gĂšre des exceptions ou des erreurs soulevĂ©es par le serveur ou les services. L'affichage dĂ©pend du mode de dĂ©bogage choisi dans la variable debogage_mode du fichier Config. Il est possible de retourner les erreurs et avertissements PHP dans l'entĂȘte de la rĂ©ponse Ă l'aide du paramĂȘtre de config suivant : debogage_mode="php:Debug::MODE_ENTETE_HTTP". Toutefois, les services web ne devrait pas dĂ©clencher d'erreur ou d'avertissement Ă l'aide de trigger_error mais plutĂŽt retourner les codes HTTP correspondant au problĂšme rencontrĂ©.
Rest Service
Les fonctions de cette classe sont appelĂ©es par la classe Rest Serveur en fonction du type de requĂȘte HTTP :- consulter($ressources, $paramĂ©tres) par GET,
- ajouter($ressources, $requeteDonnees) par PUT (requĂȘte HTTP de type PUT ou POST sans indication de ressource Ă modifier).,
- modifier($ressources, $requeteDonnees) par POST,
- supprimer($ressources) par DELETE (requĂȘte HTTP de type DELETE ou POST avec action=DELETE).