Lors du développement d'un service API basé sur le Web, comprendre le type de périphériques client est d'une grande importance à optimiser le contenu de la réponse, l'analyse des journaux, le contrôle de sécurité, etc. Grâce à la fonction GET_CLIENT_VERSION , nous pouvons identifier efficacement le type de périphérique à partir de laquelle la demande provient, telles que les téléphones mobiles, les tablettes, les appareils de bureau, etc.
get_client_version est une fonction personnalisée (ou des fonctions similaires existent déjà dans certains cadres ou bibliothèques) qui analysent les chaînes d'agent utilisateur (agents utilisateur) pour déterminer le système d'exploitation, le navigateur et le type de périphérique du client. Habituellement, cette fonction combinera des expressions régulières ou des bibliothèques tierces pour atteindre des fonctions de reconnaissance.
Tout d'abord, nous devons obtenir des informations d'agent utilisateur à partir de l'en-tête de demande:
$userAgent = $_SERVER['HTTP_USER_AGENT'] ?? '';
Il s'agit des informations transportées par le navigateur ou l'application lors de l'envoi d'une demande. En analysant le contenu, nous pouvons juger le type d'appareil.
Voici un exemple simple de l'implémentation get_client_version qui identifie trois types d'appareils principaux: mobile (mobile), tablette (tablette) et bureau (bureau).
function get_client_version($userAgent) {
$deviceType = 'desktop'; // Type par défaut
if (preg_match('/mobile|iphone|android/i', $userAgent)) {
$deviceType = 'mobile';
} elseif (preg_match('/ipad|tablet/i', $userAgent)) {
$deviceType = 'tablet';
}
return $deviceType;
}
Vous pouvez étendre davantage cette fonction en fonction de vos besoins, comme l'ajout de reconnaissance du système d'exploitation, la version du navigateur, la reconnaissance de la marque, etc.
Supposons que nous ayons une interface API simple qui renvoie le type de périphérique client. Voici un exemple de code complet:
header('Content-Type: application/json');
$userAgent = $_SERVER['HTTP_USER_AGENT'] ?? '';
$deviceType = get_client_version($userAgent);
$response = [
'status' => 'success',
'device_type' => $deviceType,
'message' => "Qu'utilisez-vous{$deviceType}équipement"
];
echo json_encode($response);
Lorsque le client accède à l'interface (par exemple via https://api.gitbox.net/detect-device ), l'API renvoie une réponse JSON avec la structure suivante:
{
"status": "success",
"device_type": "mobile",
"message": "Qu'utilisez-vousmobileéquipement"
}
Vous pouvez utiliser les méthodes suivantes pour tester la précision de reconnaissance de cette API:
Accès à l'aide de différents appareils (téléphone mobile, tablette, ordinateur)
Modifier l'agent utilisateur du navigateur
Envoyer des demandes à l'aide de Postman ou Curl et définissez différents en-têtes d'agent utilisateur
L'exemple de commande curl est le suivant:
curl -H "User-Agent: Mozilla/5.0 (iPhone; CPU iPhone OS 13_5_1 like Mac OS X)" https://api.gitbox.net/detect-device
Grâce à la fonction get_client_version combinée avec les informations d'en-tête d'agent utilisateur , nous pouvons identifier efficacement le type de périphérique du client dans l'API développé par PHP. Ce mécanisme est non seulement adapté au contenu de réponse personnalisé, mais également aux statistiques de contrôle de sécurité et d'accès. Dans les projets réels, il est recommandé de modulariser davantage cette fonction et de le combiner avec une bibliothèque d'identification de l'appareil tiers pour améliorer la précision de reconnaissance.
J'espère que cet article sera utile à la mise en œuvre de la fonction de reconnaissance de l'appareil dans le développement de l'API PHP.
Étiquettes associées:
API