SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

IBM Bluemix User Group(BMXUG)リレー寄稿

IBM Cloud Tools for Swiftをつかって、KituraでWebAPIを作ろう

IBM Bluemix User Group(BMXUG)リレー寄稿 第1回

  • X ポスト
  • このエントリーをはてなブックマークに追加

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・ビックデーターなど)が予定されています。

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

この記事は参考になりましたか?

  • X ポスト
  • このエントリーをはてなブックマークに追加
IBM Bluemix User Group(BMXUG)リレー寄稿連載記事一覧

もっと読む

この記事の著者

佐藤 剛士(Bluemix User Group)(サトウ タケシ)

「Personal Factory」という屋号でフリーランスとして働く。iOSのエンジニア。アプリ設計、UIデザイン、開発を通して、よりよいアプリの作成を目指す。2011年から2014年独立系のSIerにて保守運用業務。その後有限会社カイカイにてプロダクト企画、iOSアプリの開発、Web開発に携わる。渋谷で毎週iOSエンジニアのための朝活Swiftプログラミング勉強会を2015年から運営。技術ブログPersonal Factoryを運営。

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/9622 2016/09/07 14:00

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング