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・ビックデーターなど)が予定されています。
インフラエンジニアも、開発エンジニアも、営業の方も、そうでない方も、クラウドを活用した、最新のサービスやテクノロジーに興味のある方ならどなたでも参加していただけます。イベント開催の二日間、今「旬」のテクノロジーやビジネスをお楽しみください。