이 기사에서는 PHP의 date_sunset () 함수를 REST API로 캡슐화하는 방법을 살펴 봅니다. 이런 식으로 다른 응용 프로그램 또는 시스템은 PHP 스크립트를 직접 실행하지 않고 HTTP 요청을 통해 일몰 시간을 얻을 수 있습니다.
php의 date_sunset () 함수는 지정된 위치의 일몰 시간을 계산하는 데 사용됩니다. 이 함수는 일몰 시간을 나타내는 Unix 타임 스탬프를 반환합니다. 기본 사용량은 다음과 같습니다.
$timestamp = date_sunset(time(), SUNFUNCS_RET_TIMESTAMP, $latitude, $longitude);
echo "Sunset time: " . date("Y-m-d H:i:s", $timestamp);
위의 예에서 $ latitude 및 $ longitude는 위치의 위도와 경도를 나타내며 Sunfuncs_ret_timestamp는 Unix 타임 스탬프 형식의 반환을 나타냅니다.
date_sunset () 이 REST API로 캡슐화되면 다른 응용 프로그램에 기능을 제공하여 표준 HTTP 요청보다 일몰 시간을 얻을 수 있습니다. 이 접근법은 PHP 환경없이 일몰 시간 데이터에 액세스하거나 기능을 다른 서비스에 통합하려는 시나리오에 적합합니다.
우리는 RESTFUL API를 구축하는 데 특히 적합한 가벼운 PHP 프레임 워크 인 Slim Framework를 사용합니다. 먼저, 작곡가 종속성 관리 도구가 개발 환경에 설치되고 슬림 프레임 워크가 설치되어 있는지 확인하십시오.
작곡가를 통해 슬림 프레임 워크를 설치하십시오.
composer require slim/slim:"4.*"
composer require slim/psr7
다음으로 Date_Sunset () 함수를 API로 캡슐화하는 간단한 PHP 스크립트를 만듭니다.
<?php
require 'vendor/autoload.php';
use Slim\Factory\AppFactory;
$app = AppFactory::create();
// 정의 a REST API 라우팅
$app->get('/sunset', function ($request, $response, $args) {
// 요청 매개 변수를 얻습니다
$latitude = $request->getQueryParams()['latitude'] ?? 0;
$longitude = $request->getQueryParams()['longitude'] ?? 0;
// 효과적인 위도와 경도를 보장하십시오
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');
}
// 일몰 시간을 얻으십시오
$timestamp = date_sunset(time(), SUNFUNCS_RET_TIMESTAMP, $latitude, $longitude);
// 형식 출력
$dateTime = date("Y-m-d H:i:s", $timestamp);
// 반품 JSON 응답
$response->getBody()->write(json_encode(['sunset' => $dateTime]));
return $response->withHeader('Content-Type', 'application/json');
});
// 응용 프로그램을 실행하십시오
$app->run();
이 코드 스 니펫에서는 슬림 프레임 워크를 사용하여 쿼리 매개 변수로 위도 와 경도를 수용하는 간단한 REST API 경로 /일몰을 만듭니다. 반환 된 결과는 계산 된 일몰 시간을 포함하는 JSON 형식입니다.
PHP 스크립트를 시작한 후 다음 URL을 통해 API를 테스트 할 수 있습니다.
http://m66.net/sunset?latitude=34.0522&longitude=-118.2437
이것은 다음과 유사한 JSON 응답을 반환합니다.
{
"sunset": "2025-04-26 19:42:00"
}
이 API를 프로덕션 환경에 배포하려면 PHP 지원 서버에서 호스팅하거나 클라우드 서비스 (예 : AWS, Heroku 등)를 사용하도록 선택할 수 있습니다. 서버가 PHP 및 HTTP 요청을 지원하는 한이 API를 실행할 수 있습니다.
원하는 대로이 API를 확장 할 수 있습니다. 예를 들어 날짜와 같은 쿼리 매개 변수를 추가하거나 다른 형식 (예 : Unix 타임 스탬프 또는 UTC 시간)으로 데이터를 반환하거나 인증 메커니즘을 통해 API를 보호하여 승인 된 사용자 만 호출 할 수 있습니다.