grigorygerasimov/laravel-weather

基于WeatherAPI的Laravel包

1.0.0 2023-06-18 10:58 UTC

This package is auto-updated.

Last update: 2024-09-18 13:45:18 UTC


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 控制器组件

Screenshot 2023-06-18 at 11 25 36 Screenshot 2023-06-18 at 11 26 11 Screenshot 2023-06-18 at 11 26 43 Screenshot 2023-06-18 at 11 27 33

文档

有关包结构和API的详细说明,请参阅已发布到您的公共文件夹的Laravel-Weather文档。在运行php artisan serve命令时,您可以通过以下方式访问文档:

https://:8000/vendor/laravel-weather/docs/index.html

请务必参考官方WeatherAPI文档,以更好地了解如何通过JSON RestAPI获取天气和地理数据。

许可证

该包在MIT许可证下,因此您可以在项目中自由使用它。

反馈

由于我以前从未有过创建包的经验,我将非常感谢一些反馈:Laravel-Weather包是否容易/困难使用,什么可以改进等。

请随时通过以下rehor.ger@gmail.com与我联系