Maison > Article > développement back-end > Explication détaillée des étapes de développement de l'interface API côté serveur PHP
Cette fois, je vais vous apporter une explication détaillée des étapes de développement de l'interface API côté serveur PHP. Quelles sont les précautions pour le développement de l'interface API côté serveur PHP. Voici les pratiques. cas, jetons un coup d'oeil.
Je crois que tout le monde a déjà utilisé l'interface API de requête PHP pour obtenir des données, telles que l'API Taobao, la plateforme publique WeChat, la requête météo, la requête express, etc. Certains doivent se référer au document d'interface pour construire un signe selon l'algorithme de signature, ou définir le jeton, puis envoyer une requête POST avec des paramètres via curl pour obtenir les données de retour, généralement au format json ou xml.
Mais maintenant, la situation est inversée. Nous devons développer l'interface API côté serveur PHP, c'est-à-dire que lorsque d'autres nous le demandent, nous vérifions la légitimité de la demande et renvoyons les données de la requête.
Cette situation est en fait utilisée dans le développement d'applications mobiles. Les applications d'applications mobiles doivent souvent demander l'interface PHP pour obtenir des données, mais cette demande n'a généralement pas besoin d'être vérifiée. Différentes URL sont demandées selon différentes fonctions, Passez généralement les paramètres dans la méthode get pour obtenir les données directement.
Cet article parle brièvement de la méthode côté serveur de vérification de la légitimité de la demande et de la méthode de réception des paramètres.
Demande d'obtention simplePar exemple : http://www.demo.com/api/get_cat?id=2, la demande de cette URL renverra certaines données, Peu importe qui le demande en utilisant n'importe quel langage de programmation, les données seront disponibles.
Alors cela n'est évidemment pas possible lorsque la légalité doit être vérifiée. Par conséquent, une clé secrète est nécessaire. À l’heure actuelle, POST est souvent utilisé pour demander l’URL.
Par exemple, il y a un signe de signature dans le paramètre passé, et la valeur est 98888. Bien sûr, il existe de nombreuses façons de générer le signe et cela ne peut pas être si simple, je l'écris simplement ici. Ensuite, le signe reçu par le serveur est 98888. Si nous sommes d'accord sur 98888 C'est légal. À ce stade, vous pouvez vérifier qu'il s'agit d'une demande légale en jugeant si le signe est 98888.
Mais c'est trop simple, il sera fissuré d'un seul coup, et mettre ce panneau n'aura aucun sens. Par conséquent, il doit y avoir une règle pour générer le signe. Lors de la demande, le paramètre sign est généré selon cette règle. Lorsque le serveur le reçoit, il génère également le signe selon cette règle. Si les signes générés sont cohérents, il l'indique. est une demande légale. Chaque demande sera accompagnée d'un signe de vérification.
Il existe également une sorte de vérification appelée token. Le token est vérifié lors de la première demande. Il n'a pas besoin d'être vérifié à nouveau dans un certain délai. Cela nécessite deux étapes. La première étape consiste à demander à l'interface d'obtenir le jeton et à obtenir le jeton. La deuxième étape consiste à demander la fonction de l'interface spécifique, et vous devez apporter le jeton pour transmettre les paramètres. Étant donné que le serveur stocke d'abord le jeton lors de sa première demande, puis le renvoie, les requêtes ultérieures peuvent vérifier si le jeton transmis existe.
De nombreux développeurs d'interfaces utilisent les deux méthodes pour garantir la confidentialité et la sécurité.
Un autre point est que le module CURL de PHP est souvent utilisé pour envoyer des requêtes POST. Par exemple, l'autre partie envoie une requête POST via curl, curl_setopt($ch, CURLOPT_POSTFIELDS, $post_string), où $post_string est un. bon moyen de transmettre un tableau PHP ou est-il au format json ?
S'il s'agit d'un tableau PHP, j'obtiens directement les paramètres via $_POST['xx']. Si c'est un format json, il me semble utiliser file_get_contents('php: / /input', 'r') obtient les données json transmises, puis analyse le json pour obtenir les paramètres.
Quand dois-je utiliser le deuxième ?
Cette question a été posée en ligne, voyons comment tout le monde a répondu :
JSON et tableaux pour PHP Parfois la différence n'est en réalité qu'une ligne de code. Si je l'écris, je peux simplement utiliser la première.
Je pense que si vous voulez que votre code soit plus simple, vous pouvez utiliser le second. Je me souviens que le SDK php de Weixin semble être similaire au second (bien sûr, il est au format XML)
Et si l'autre partie Si vous utilisez le json sérialisé directement depuis Orienté objet, l'utilisation de json rendra son code plus concis.
La première méthode, consiste à transmettre le formulaire du protocole POST, PHP convertira le tableau PHP au format de formulaire HTTP, qui est universel dans toutes les langues, mais Il ne s'agit pas d'un protocole API traditionnel, mais plutôt d'un formulaire de soumission simulé.
La plupart des protocoles API utiliseront JSON POST, La deuxième méthode, consiste à mettre les données JSON dans le corps HTTP. Également multilingue, mais plus convivial en tant qu'API.
La première méthode consiste à utiliser directement PHP curl. Si le contenu des données n'est pas bien traité et qu'un contenu tel que @/xxx/xxx est passé dans la valeur du tableau, curl transférera le fichier local sur le serveur, alors soyez prudent.
x-www-form-urlencoded est une norme RFC, il n'y a rien d'incompatible, elle est non seulement multilingue, mais aussi à travers le temps et l'espace. JSON a été développé ces dernières années. Ce n’est pas un standard, c’est juste pour plus de commodité.
Je pense que vous maîtrisez la méthode après avoir lu le cas dans cet article. Pour des informations plus intéressantes, veuillez prêter attention aux autres articles connexes sur le site Web chinois de php !
Lecture recommandée :
Explication détaillée des étapes pour connecter la base de données au framework ThinkPHP PDO
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!