Dans cet article, nous explorerons comment encapsuler la fonction DATE_SUNSET () de PHP dans une API REST. De cette façon, d'autres applications ou systèmes peuvent obtenir du temps de coucher de soleil via des demandes HTTP sans exécuter directement des scripts PHP.
La fonction DATE_SUNSET () de PHP est utilisée pour calculer l'heure du coucher du soleil d'un emplacement spécifié. Cette fonction renvoie un horodatage Unix indiquant l'heure du coucher du soleil de la journée. L'utilisation de base est la suivante:
$timestamp = date_sunset(time(), SUNFUNCS_RET_TIMESTAMP, $latitude, $longitude);
echo "Sunset time: " . date("Y-m-d H:i:s", $timestamp);
Dans l'exemple ci-dessus, $ latitude et $ longitude représentent la latitude et la longitude de l'emplacement, et Sunfuncs_Ret_timestamp représente le retour du format horodomagien Unix.
Une fois que date_sunset () est encapsulé dans une API REST, vous pouvez fournir la fonctionnalité à d'autres applications, leur permettant d'obtenir du temps de coucher de soleil sur les demandes HTTP standard. Cette approche convient aux scénarios dans lesquels vous souhaitez accéder aux données de Sunset Time sans environnement PHP, ou intégrer la fonctionnalité dans d'autres services.
Nous utiliserons Slim Framework, un cadre PHP léger qui convient particulièrement à la construction d'API RESTful. Tout d'abord, assurez-vous que l'outil de gestion de la dépendance des compositeurs est installé dans votre environnement de développement et que le framework Slim est installé.
Installez le framework Slim via le compositeur:
composer require slim/slim:"4.*"
composer require slim/psr7
Ensuite, nous créons un script PHP simple qui encapsule la fonction date_sunset () dans une API.
<?php
require 'vendor/autoload.php';
use Slim\Factory\AppFactory;
$app = AppFactory::create();
// Définir un REST API routage
$app->get('/sunset', function ($request, $response, $args) {
// Obtenir les paramètres de demande
$latitude = $request->getQueryParams()['latitude'] ?? 0;
$longitude = $request->getQueryParams()['longitude'] ?? 0;
// Assurer une latitude et une longitude efficaces
if (!is_numeric($latitude) || !is_numeric($longitude)) {
$response->getBody()->write(json_encode(['error' => 'Invalid latitude or longitude']));
return $response->withStatus(400)->withHeader('Content-Type', 'application/json');
}
// Obtenez l'heure du coucher du soleil
$timestamp = date_sunset(time(), SUNFUNCS_RET_TIMESTAMP, $latitude, $longitude);
// Sortie de format
$dateTime = date("Y-m-d H:i:s", $timestamp);
// retour JSON réponse
$response->getBody()->write(json_encode(['sunset' => $dateTime]));
return $response->withHeader('Content-Type', 'application/json');
});
// Exécuter l'application
$app->run();
Dans cet extrait de code, nous utilisons Slim Framework pour créer une route / coucher de soleil de repos simple qui accepte la latitude et la longitude comme paramètres de requête, calcul et renvoie le temps de coucher du soleil. Le résultat renvoyé est au format JSON, contenant le temps de coucher de soleil calculé.
Après avoir démarré le script PHP, vous pouvez tester l'API via l'URL suivante:
http://m66.net/sunset?latitude=34.0522&longitude=-118.2437
Cela renverra une réponse JSON similaire à ce qui suit:
{
"sunset": "2025-04-26 19:42:00"
}
Si vous souhaitez déployer cette API dans un environnement de production, vous pouvez choisir de l'héberger sur n'importe quel serveur compatible PHP ou utiliser des services cloud (tels que AWS, Heroku, etc.). Cette API peut être exécutée tant que votre serveur prend en charge les demandes PHP et HTTP.
Vous pouvez étendre cette API comme vous le souhaitez. Par exemple, vous pouvez ajouter plus de paramètres de requête tels que les dates, renvoyer des données dans différents formats (tels que les horodatages UNIX ou le temps UTC), ou protéger l'API via un mécanisme d'authentification afin qu'il ne puisse être appelé que par les utilisateurs autorisés.
Étiquettes associées:
API