grigorygerasimov / laravel-weather
基于WeatherAPI的Laravel包
Requires
- php: ^8.2
- ext-curl: *
Requires (Dev)
README
基于WeatherAPI的Laravel包,用于天气和地理信息(仅支持JSON RestAPI)
安装
可以通过Composer安装此包
composer require grigorygerasimov/laravel-weather
无需注册包服务提供者 - 安装包后,此操作将自动完成。
要发布包配置,请运行以下命令。在同一标签下,还有一些示例视图和包文档。
php artisan vendor:publish --tag=laravel-weather
开始
一旦安装了包并发布了配置,您就可以在Laravel项目中使用该包了。
您只需使用Weather外观(GrigoryGerasimov\Weather\Facades\Weather)并构建自定义流畅接口即可,例如:
Weather::api('forecast')->city('Prague')->forecastDays(3)->requireAQI(true)->requireAlerts(true)->requireTides(true)->lang('cs')->get();
必须使用api()方法,因为它配置了相关的API方法和API密钥。
默认情况下使用WeatherAPI免费计划密钥,但是如果您有自己的WeatherAPI密钥,您总是可以在laravel-weather配置中调整它。
关于API方法,以下这些是可用的。
current
forecast
search
history
marine
future
timezone
sports
astronomy
ip
默认情况下,使用current方法。请注意,默认的WeatherAPI免费计划密钥对history方法有限制。
可用的Weather外观方法如下:
api(string $type = 'current')
coords(float|string $lat, float|string $lon)
city(string $city)
zip(string $zipCode)
metar(string $metarCode)
iata(string $iataCode)
autoIp()
ip(string $ip)
forecastDays(int $days = 1)
historyFutureDate(string $date)
historyDate(string $date)
forecastHistoryTimestamp(string|int $timestamp)
historyTimestamp(string|int $timestamp)
forecastHistoryHour(int $hour)
requireAlerts(bool $shouldAlert = false)
requireAQI(bool $ifAqi = false)
requireTides(bool $ifTides = false)
withInterval()
lang(string $langCode)
get()
uri()
外观方法get()将提供您请求的结果,但是您也可以通过uri()方法直接访问请求URI。
为了演示目的,该包还包括了一些组件和视图,用于基本的Weather API方法。这些视图是一些非常简单的数据列表,没有任何特定的样式,它们仅用于通过此包检索天气和地理信息的视觉表示。您可以在以下web路由中查看它们。
有关更多详细信息,您还可以查看weather 控制器和组件。
文档
有关包结构和API的详细说明,请参阅已发布到您的公共文件夹的Laravel-Weather文档。在运行php artisan serve命令时,您可以通过以下方式访问文档:
https://:8000/vendor/laravel-weather/docs/index.html
请务必参考官方WeatherAPI文档,以更好地了解如何通过JSON RestAPI获取天气和地理数据。
许可证
该包在MIT许可证下,因此您可以在项目中自由使用它。
反馈
由于我以前从未有过创建包的经验,我将非常感谢一些反馈:Laravel-Weather包是否容易/困难使用,什么可以改进等。
请随时通过以下rehor.ger@gmail.com与我联系