質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
PostgreSQL

PostgreSQLはオープンソースのオブジェクトリレーショナルデータベース管理システムです。 Oracle Databaseで使われるPL/SQLを参考に実装されたビルトイン言語で、Windows、 Mac、Linux、UNIX、MSなどいくつものプラットフォームに対応しています。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

データベース

データベースとは、データの集合体を指します。また、そのデータの集合体の共用を可能にするシステムの意味を含めます

サーバ

サーバは、 クライアントサーバモデルにおいてクライアントからの要求に対し 何らかのサービスを提供するプログラムを指す言葉です。 また、サーバーソフトウェアを稼動させているコンピュータ機器そのもののことも、 サーバーと呼ぶ場合もあります。

API

APIはApplication Programming Interfaceの略です。APIはプログラムにリクエストされるサービスがどのように動作するかを、デベロッパーが定めたものです。

Q&A

解決済

1回答

2690閲覧

Rails webAPIを作りたい!

YUKImidaifucu

総合スコア16

PostgreSQL

PostgreSQLはオープンソースのオブジェクトリレーショナルデータベース管理システムです。 Oracle Databaseで使われるPL/SQLを参考に実装されたビルトイン言語で、Windows、 Mac、Linux、UNIX、MSなどいくつものプラットフォームに対応しています。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

データベース

データベースとは、データの集合体を指します。また、そのデータの集合体の共用を可能にするシステムの意味を含めます

サーバ

サーバは、 クライアントサーバモデルにおいてクライアントからの要求に対し 何らかのサービスを提供するプログラムを指す言葉です。 また、サーバーソフトウェアを稼動させているコンピュータ機器そのもののことも、 サーバーと呼ぶ場合もあります。

API

APIはApplication Programming Interfaceの略です。APIはプログラムにリクエストされるサービスがどのように動作するかを、デベロッパーが定めたものです。

0グッド

1クリップ

投稿2016/12/18 03:36

編集2016/12/18 03:42

Rails5.0を使って「郵便番号-住所検索API(http://zipaddress.net)」のようなWebAPIサーバを作りたいです。
今はiOSアプリケーションを使って、このAPIに郵便番号のリクエストを送って、住所を引き出すことはできています。

このAPIの作り方をどなたか教えていただけませんか?
よろしくお願いしますよろしくお願いします。

開発環境
Ubuntu上で開発をしています。
・Ruby 2.3
・Rails 5
・PostgreSQLを使用

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

Railsの基本的な知識があれば、APIを作ること自体は簡単ですので、
おそらく郵便番号のデータをどうやって手に入れるのかが分からないのだろうと推測します。

郵便局が公式と考えて間違いないでしょうからここからダウンロードします。
http://www.post.japanpost.jp/zipcode/download.html

CSVの形式を見た上で、どんなテーブルにすれば良いか考えて、モデルとテーブルを作って、
CSVの内容をDBへ登録するバッチを書いて実行する。
次にAPIのパラメータと対応するレスポンスを考えて、APIコントローラを作成する。

という感じで作れます。

APIのシンプルな例

APIというのは特別なものではなくて、単にJSONを出力するアクションの事です。
ものすごくシンプルにすると、こういうやつです。
拡張子も別に.jsonにする必要もありません。好みの問題です。

ruby

1# routes.rb 2Rails.application.routes.draw do 3 get 'sample/test', to: 'sample#test' 4end 5 6# app/controllers/sample_controller.rb 7class SampleController < ApplicationController 8 def test 9 # 配列かハッシュ 10 data = [ 11 {id: 1, name: "アイテム1"}, 12 {id: 2, name: "アイテム2"} 13 ] 14 15 render json: data 16 end 17end

この例では、ブラウザで
http://railsのIPアドレス:ポート番号/sample/test にアクセスすると

json

1[{"id":1,"name":"アイテム1"},{"id":2,"name":"アイテム2"}]

というJSONが表示されれば成功です。

投稿2016/12/18 10:42

編集2016/12/19 02:36
mingos

総合スコア4025

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

YUKImidaifucu

2016/12/19 02:17

回答ありがとうございます。わかりづらい説明、失礼しました… 郵便番号データありがとうございます。 実はAPIを作ることにも苦戦しています… APIを作ることは、こちらのサイトのように進めればできるのでしょうか? (http://ruby-rails.hatenadiary.com/entry/20150108/1420675366) 今、JSON関連のエラーが発生してしまいました。 (undefined local variable or method 'son' for main : Object Did you mean? JSON) また、調べてみてもイマイチAPI作成ができたことをどうやって確認するのかがわからないです。
mingos

2016/12/19 02:35 編集

そちらのサイトのように進めれば出来ると思います。 エラーについては、1つずつ原因を予想しながらエラーがなくなるまでコードを直していくしかないです。 APIのものすごくシンプルな例を回答に追記します。 コメントでは、コードブロックが正しく表示されないようなので。
YUKImidaifucu

2016/12/27 04:06

なるほど…! できました! ありがとうございました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問