Skip to content

一个非官方的和风天气 Kotlin/Java SDK, 基于 WebAPI

License

Notifications You must be signed in to change notification settings

mysmallaccount/QWeatherSDK

 
 

Repository files navigation

SDKIcon

Made By RTAkland

MadeWithKotlin
GitHub Workflow Status Kotlin Version GitHub jitpackV

概述

此项目是一个非官方 Kotlin/Java和风天气 SDK, 使用Kotlin开发 和官方的SDK 区别在于此SDK只需要申请一个 WEB API即可使用

目录

使用

添加依赖

本地文件

Groovy DSL 为例

// 添加gson 和 QWeatherSDK 依赖
dependencies {
    implementation("com.google.code.gson:gson:2.10.1")
    implementation(files("./lib/QWeatherSDK.jar"))
}

你也可以使用 jitpack 来获取依赖

Jitpack

repositories {
    // other repos...
    maven { url "https://jitpack.io" }
}

dependencies {
    implementation("com.google.code.gson:gson:2.10.1")
    implementation("com.github.RTAkland:QWeatherSDK:v0.2.0")
}

如果想要得到fat jar包, 你可以使用embed, 这里以Groovy DSL为例

embed

添加embed配置

configurations {
    embed
    compile.extendsFrom(embed)
}

// other configurations...

dependencies {
    embed(api("com.github.RTAkland:QWeatherSDK:v0.2.0"))
}

使用embed将会把embed内包裹的库中的.class文件全部打包进, 你的jar文件中 如果库使用了别的库, 那embed也会把该库使用的库的.class文件打包进你的jar中 和 shadowJar比较类似 和gradle中的include类似, 但是gradle是将依赖jar打包进jar embed 不会和implementation关键字冲突, embed仅在编译时生效 使用embed后就可以在独立的环境运行而不需要额外下载依赖

简单的例子

Kotlin

import cn.rtast.qwsdk.QWeather
import cn.rtast.qwsdk.enums.Plans

fun main() {
    val qw = QWeather()
    // 可用的计划有 Free, Standard, Custom
    qw.init(Plans.Free, "<replace your key here>")
    val response = qw.weather().now("101010100")  // 填入对应的数据, 这里只需要填写一个
    println(response)  // 返回的数据已经被反序列化, 可以直接访问对应的数据类来获取数据
}

Java

import cn.rtast.qwsdk.QWeather;
import cn.rtast.qwsdk.enums.Lang;
import cn.rtast.qwsdk.enums.Unit;
import cn.rtast.qwsdk.enums.Plans;

public class Main {
    public static void main(String[] args) {
        QWeather qw = new QWeather();
        qw.init(Plans.Free, "<replace your key here>");
        System.out.println(qw.weather().now("101010100"));
        // 最后两个参数有默认值, 通过给函数添加@JvmOverloads注解在编译时生成重载函数来实现Java参数默认值
    }
}

数据类

请点击这里查看

单元测试

v0.2.0版本添加了单元测试, 如果想要使用单元测试你需要添加两个环境变量 QW_KEY QW_PLAN, 这两个变量分别代表 QWeather Key 和 key的版本, QW_PLAN 可用数据有 free standard custom 不区分大小写, 但是变量名必须大写 测试完成后你可以在build/reports/tests/test/index.html 找到测试报告

如果你的Key无法使用某些api那么这个测试则会直接跳过并判定为成功, 你可以在这里找到各种订阅之间的差别

注意事项

本SDK无法使用太阳辐射 因为没有条件测试返回结果, 并且官方文档也没有写明返回的数据, 故无法创建数据类实现接口

目前编译出的产物的JVM版本为 1.8, 所以你至少需要1.8以上版本来使用此JDK

开发

  • 建议使用Intellij IDEA 进行开发

克隆项目

$ git clone https://github.com/RTAkland/RMusic.git

手动编译

Linux/Unix/Mac OS

$ chmod +x ./gradlew
$ ./gradlew build

Windows

$ .\gradlew.bat build

开源

  • 本项目以Apache-2.0许可开源, 即:
    • 你可以直接使用该项目提供的功能, 无需任何授权
    • 你可以在注明来源版权信息的情况下对源代码进行任意分发和修改以及衍生

鸣谢

JetBrainsIcon

JetBrains Open Source 提供的强大IDE支持

About

一个非官方的和风天气 Kotlin/Java SDK, 基于 WebAPI

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Kotlin 100.0%