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

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

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

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Ruby on Rails

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

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

API

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

解決済

(Ruby)クライアントからwebapiにリクエストを送るプログラムを作りたい。

削除済ユーザー
削除済ユーザー

総合スコア0

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Ruby on Rails

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

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

API

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

1回答

0評価

0クリップ

1002閲覧

投稿2018/01/26 08:21

編集2022/01/12 10:58

下記の課題に取り組むために事前学習

QiitaでWebAPI調査し、非公開記事にまとめています。
web apiの学習まとめ
その上で、下記課題に取り組んでいます。

解決したい課題

以下WebAPI3つ使って、ある「利用者ID」を与えて「利用者名」・「登録クラブ一覧」・「登録クラブポイント(point)」の
出力プログラムをオブジェクト指向プログラミングで設計/実装しなさい。
URLは無効なURLです

https://riko-19950120.herokuapp.com/users/1

json

/*レスポンス(例)*/ { attributes: { id: 1, name: "Rico", club_ids: [ 1, 3, 5 ] } }

https://riko-19950120.herokuapp.com/users/1/clubs

json

/*レスポンス(例)*/ [ { attributes: { id: 1, user_id: 1, name: "ライザップクラブ", point: 15000 } }, { attributes: { id: 3, user_id: 1, name: "シックスパッドクラブ", point: 13000 } }, { attributes: { id: 5, user_id: 1, name: "ゴールドジムクラブ", point: 52000 } } ]

https://riko-19950120.herokuapp.com/clubs/2

json

/*レスポンス(例)*/ { attributes: { id: 2, user_id: 2, name: "ビリーズブートキャンプクラブ", point: 2300 } }

自分なりの回答

require 'net/http' require 'openssl' require 'uri' require 'json' require 'logger' TIMEOUT_SECOND = 10 # HTTPSに使う時に必要??(今は横に置いておきました...。) # url = '' # https = Net::HTTP.new(url,443) # https.use_ssl = true # https.open_timeout = TIMEOUT_SECOND # https.read_timeout = TIMEOUT_SECOND # https.verify_mode = OpenSSL::SSL::VERIFY_PEER # https.verify_depth = 5 # Qiitaで見たメソッドをアレンジ) def get_json(location,limit=10) raise ArgumentError, 'too many HTTP redirects' if limit == 0 uri = URI.parse(location) begin response = Net::HTTP.start(uri.host,uri.port,use_ssl:uri.scheme == 'https') do |http| http.open_timeout = TIMEOUT_SECOND http.read_timeout = TIMEOUT_SECOND http.get(uri.request_uri) end case response when Net::HTTPSuccess json = response.body JSON.parse(json) ######## ここで「利用者名」・「登録クラブ一覧」・「登録クラブポイント(point)」を? #### when Net::HTTPRedirection location = response['location'] warn "redirected to #{location}" get_json(location, limit - 1) else puts [uri.to_s, response.value].join(" : ") # handle error end rescue => e puts [uri.to_s,e.class,e].join(":") end end puts get_json('****URL??****')

んー...色々まだ考えることがありそうです。。。

困っていること...。

わからないこと
オブジェクト指向での実装オブジェクト志向の内容は理解をしていますが、プログラムに落とし込むことができていません。
設問の「ある『利用者ID』を与えて」...の文言引数idをどのように与えるように実装すればよいのか。クラスのイニシャライズに与えるべきか、メソッドに与えるべきなのかわかりません。

ご助言頂ける方、よろしくお願いします。

良い質問の評価を上げる

以下のような質問は評価を上げましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

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

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

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

teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

  • プログラミングに関係のない質問
  • やってほしいことだけを記載した丸投げの質問
  • 問題・課題が含まれていない質問
  • 意図的に内容が抹消された質問
  • 過去に投稿した質問と同じ内容の質問
  • 広告と受け取られるような投稿

評価を下げると、トップページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

まだ回答がついていません

会員登録して回答してみよう

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

ただいまの回答率
87.20%

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

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

質問する

関連した質問

同じタグがついた質問を見る

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Ruby on Rails

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

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

API

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