Object Strageにデータを読み書きする
今回はエンドポイントに"/api"というAPIを作成して、それぞれデータの書き込み、読み込みをできるようにしたいと思います。
| エンドポイント | HTTPメソッド | 説明 |
|---|---|---|
| /api | POST | bodyのデータをsample.jsonに書き込む |
| /api | GET | sample.jsonの情報を読み込む |
まず、main.swiftにObjectStrageクラスの作成します。
var objectStrage = ObjectStrage() objectStrage.getToken()
その下に、書き込みのメソッドを作成します。
router.post("/api") { request, response, next in
response.headers["Content-Type"] = "application/json; charset=utf-8"
let body = NSMutableData()
let _ = try request.read(into: body)
if objectStrage.setData(into: body) {
try response.status(.OK).send("Success!").end()
} else {
try response.status(.OK).send("Error!").end()
}
}
次に読み込みのメソッドを作成します。
router.get("/api") { request, response, next in
response.headers["Content-Type"] = "application/json; charset=utf-8"
let data = objectStrage.getData()
if let jsonData = data {
let value = jsonData["key"].stringValue
try response.status(.OK).send("Get data is \(value)").end()
} else {
try response.status(.OK).send("No data").end()
}
}
作成できたら、ビルドします。ターミナルを開きます。
make run
ビルドが成功したら、APIを叩いてみましょう。curlで以下を実行します。
curl -w '\n' 'http://localhost:8090/api' --data '{"key":"value"}' -XPOST
Success!の文字が返却されたら成功です。
Success!
続いて本当にデータが書き換わっているかを確認します。
curl -w '\n' 'http://localhost:8090/api'
以下の文字列が返却されたら成功です。
Get data is value
IBM Cloud Tools for Swiftでデプロイする
IBM Cloud Tools for Swiftを立ち上げて、作成したAPIをクラウドに上げましょう。プロジェクトページから「Deploy」ボタンを押してデプロイをします。しばらくするとBluemix上でSwiftのアプリが立ち上がります。実際にcurlでAPIを叩いて見ましょう。
curl -w '\n' 'https://first-kitura-project.mybluemix.net/api'
ローカルと同じく以下の文字列が出ていれば成功です。
Get data is value
最後に
今回は、SwiftサーバーサイドのフレームワークKituraでJsonファイルを操作するWebAPIを作成しました。まだまだKituraは始まったばかりのフレームワークですが、IBM Cloud Tools for Swiftのおかげで開発のしやすい環境になっています。
ぜひみなさんも試してみてください。
今「旬」のテクノロジーや革新的なサービスを一挙紹介!
オープンイノベーションを支える国内外の最新事例を始め、最先端の技術を活用しサービスを展開している企業やコミュニティの皆さまより、全32セッション(クラウド・ロボティックス・IoT・DevOps・ビックデーターなど)が予定されています。
インフラエンジニアも、開発エンジニアも、営業の方も、そうでない方も、クラウドを活用した、最新のサービスやテクノロジーに興味のある方ならどなたでも参加していただけます。イベント開催の二日間、今「旬」のテクノロジーやビジネスをお楽しみください。
