6
8

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

grape による Web API化 でハマった小さな点 --Rails と iOS 連携の下準備--

Last updated at Posted at 2014-11-25

Rails で作成した Web アプリと iPhone アプリとの連携を行おうとあれこれ試す中で、grape を用いて少しハマった。そのことについて書いていこうと思う。

Rails と iOS の連携について

Rails と iOS で連携するには、基本的には Rails 側のデータを API化して、HTTPリクエストで扱える状態にした上で、iOS側でも適切なライブラリを導入し、それらのデータを扱えるようにすればいいだけの話である。

そして、今回はその第一段階として、すでに作成済みの Web アプリにおいて、データの API化 を grape という gem を用いて試してみた。ところが、かなり小さいところではまってしまったので、これから grape を使う人のために記録しておこうと思う。(本当に小さな点なので、この記事が読まれる頃には改善されている可能性がある。)

grape の使い方について

grape 自体の使い方については、公式リファレンスか、あるいは、こちらの記事こちらの記事に詳しい。ので、実際の使い方はこれらの記事を参考にしてほしい。しかし、この通りに作成し、api 以下にアクセスしたところ、` uninitialized constant API (NameError)`というエラーを受け取ってしまった。どうやらルーティングがまずいらしい。

ということで調べたところ、このような記事を見つけた。この記事によれば、grape の公式ドキュメントにあるように、Rails は api ディレクトリの中のモジュール名のついたディレクトリ配下のファイルを探すらしく、そのため、ディレクトリ構造としては、app/api/api.rbではなく、app/api/api/api.rbが正しい、ということらしい。確かにこうすると問題は解決した。

ただ、まだ理解が甘いところがある上、こうして書いてみても、自分で「本当か?」と思ってしまう説明ではあるので、また改めて理解が進めば加筆・修正していきたいと思う。ご指摘などいただければ幸いです。

6
8
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
8

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?