LINE BOTを作ってみてVaporのDroplet
のHTTP Client使えそうだと思ったので、そこだけ切り離して使って見ます。
- Swift 4.0.3
- Vapor 2.4.0
です。
VaporをHTTPリクエストだけに利用するのは大きすぎるので、HTTPリクエストだけするライブラリでServer Side Swiftでよく使われるライブラリって何があるのか知りたいです。
HTTPリクエストの練習で天気はよく使います。
土善旅館周辺の天気
ライブドアの天気APIです。
土善旅館は千葉の東の方なので、用意されてて近い場所は銚子
みたいですね。
http://weather.livedoor.com/forecast/webservice/json/v1?city=120020
実装
フォルダ作って移動
$ mkdir tenki
$ cd tenki
初期化、このコマンド省略系の書き方できないのかな...
$ swift package init --type executable
// swift-tools-version:4.0
// The swift-tools-version declares the minimum version of Swift required to build this package.
import PackageDescription
let package = Package(
name: "tenki",
dependencies: [
// Dependencies declare other packages that this package depends on.
.package(url: "https://github.com/vapor/vapor.git", from: "2.4.0")
],
targets: [
// Targets are the basic building blocks of a package. A target can define a module or a test suite.
// Targets can depend on other targets in this package, and on products in packages which this package depends on.
.target(
name: "tenki",
dependencies: ["Vapor"]),
]
)
import Vapor
let drop = try Droplet()
let endpoint = "http://weather.livedoor.com/forecast/webservice/json/v1?city=120020"
let res: Response = try drop.client.get(endpoint)
let mes = res.data["description"]?.object?["text"]?.string
print(mes)
[WIP]まだJSONの扱い方が怪しいのでもう少し調べたい
実行
$./.build/x86_64-unknown-linux/debug/tenki
Could not load config files from: /home/n0bisuke/myswift/tenki/Config/
Try using the configDir flag
ex: .build/debug/Run --configDir=/absolute/path/to/configs
The default hash should be replaced before using in production.
The default cipher should be replaced before using in production.
Optional(" 西日本から東日本にかけて高気圧に覆われています。\n\n 千葉県は、晴れや曇りとなっています。\n\n 21日は、高気圧に覆われますが、上空の気圧の谷や寒気の影響により、\n晴れ時々曇りとなるでしょう。\n \n 22日は、低気圧が発達しながら伊豆諸島を通過するため、曇りで、昼過\nぎから北西部では雪か雨、北東部と南部では雨となる見込みです。\n\n 太平洋沿岸では、21日は、うねりを伴い波がやや高いでしょう。22日\nは、波が高い見込みです。船舶等は注意してください。")
西日本から東日本にかけて高気圧に覆われています。\n\n 千葉県は、晴れや曇りとなっています。\n\n 21日は、高気圧に覆われますが、上空の気圧の谷や寒気の影響により、\n晴れ時々曇りとなるでしょう。\n \n 22日は、低気圧が発達しながら伊豆諸島を通過するため、曇りで、昼過\nぎから北西部では雪か雨、北東部と南部では雨となる見込みです。\n\n 太平洋沿岸では、21日は、うねりを伴い波がやや高いでしょう。22日\nは、波が高い見込みです。船舶等は注意してください。
とのことです。